]> Cypherpunks repositories - keks.git/commitdiff
Add commonly used junk-generation strategy
authorSergey Matveev <stargrave@stargrave.org>
Sat, 30 Nov 2024 16:15:18 +0000 (19:15 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sat, 30 Nov 2024 19:38:56 +0000 (22:38 +0300)
pyac/tests/strategies.py
pyac/tests/test_blob.py
pyac/tests/test_bool.py
pyac/tests/test_list.py
pyac/tests/test_map.py
pyac/tests/test_symmetric.py
pyac/tests/test_tai.py

index b84dd7cfc4201151ec0ef5faa339ea94eea232bafa577496a6b58b0f46340e1c..72fa859076084fb7f2bf61944a2faa11f12275d8ba05e26018a203b66c8fcf19 100644 (file)
@@ -13,6 +13,7 @@ from hypothesis.strategies import uuids
 from pyac import Blob
 
 
+junk_st = binary(max_size=20)
 blobs_st = tuples(integers(1, 20), binary(max_size=60)).map(lambda x: Blob(*x))
 unicode_allowed = characters(exclude_characters="\x00", exclude_categories=("Cs",))
 text_st = text(alphabet=unicode_allowed, max_size=32)
index 3aae82d64ab97fa5db60b8e843f2ea51d6413872ac1c4de189b4f1be3db96e32..1289ca8d1f3d345447cd6062fcb875a8962dfdd43800a39e64d3f819c6c1dabc 100644 (file)
@@ -1,13 +1,13 @@
 from unittest import TestCase
 
 from hypothesis import given
-from hypothesis.strategies import binary
 
 from pyac import Blob
 from pyac import DecodeError
 from pyac import dumps
 from pyac import loads
 from pyac import NotEnoughData
+from tests.strategies import junk_st
 
 
 class TestBlob(TestCase):
@@ -18,7 +18,7 @@ class TestBlob(TestCase):
             encoded, b"\x0b\x00\x00\x00\x00\x00\x00\x00\x03\x01test\x01data\x80"
         )
 
-    @given(binary(max_size=20))
+    @given(junk_st)
     def test_blob_decode(self, junk: bytes) -> None:
         encoded = b"\x0B\x00\x00\x00\x00\x00\x00\x00\x03\x01test\x01data\x80" + junk
         decoded, remaining = loads(encoded)
index c711a00fa4008c1feda9d939b874e8de632feff4da5ee115c23f6ff76f1ac9e4..b9eb81b2b26ddca13a2ea088ae2b26793ca6548744a9452526be4bed8611169c 100644 (file)
@@ -1,10 +1,10 @@
 from unittest import TestCase
 
 from hypothesis import given
-from hypothesis.strategies import binary
 
 from pyac import dumps
 from pyac import loads
+from tests.strategies import junk_st
 
 
 class TestBool(TestCase):
@@ -18,14 +18,14 @@ class TestBool(TestCase):
         encoded = dumps(False)
         self.assertEqual(encoded, b"\x02")
 
-    @given(binary(max_size=20))
+    @given(junk_st)
     def test_bool_decode_true(self, junk):
         encoded = b"\x03" + junk
         decoded, remaining = loads(encoded)
         self.assertIs(decoded, True)
         self.assertEqual(remaining, junk)
 
-    @given(binary(max_size=20))
+    @given(junk_st)
     def test_bool_decode_false(self, junk):
         encoded = b"\x02" + junk
         decoded, remaining = loads(encoded)
index 9d386b60c5e28c039503cf291e6240bf4cc42e9e28aa96a930edd90031718aca..3367d2c898955140af5f2458d0c3302cb61a767b98ad770a08bf7b9282607371 100644 (file)
@@ -2,13 +2,13 @@ from typing import List
 from unittest import TestCase
 
 from hypothesis import given
-from hypothesis.strategies import binary
 from hypothesis.strategies import lists
 
 from pyac import dumps
 from pyac import loads
 from pyac import NotEnoughData
 from tests.strategies import any_st
+from tests.strategies import junk_st
 
 
 class TestList(TestCase):
@@ -29,7 +29,7 @@ class TestList(TestCase):
         self.assertEqual(decoded, [])
         self.assertEqual(remaining, b"")
 
-    @given(lists(any_st, max_size=4), binary(max_size=20))
+    @given(lists(any_st, max_size=4), junk_st)
     def test_list_decode_non_empty(self, test_list: List, junk: bytes) -> None:
         encoded = b"\x08" + b"".join(dumps(i) for i in test_list) + b"\x00" + junk
         decoded, remaining = loads(encoded)
index 0d069fff8e672e6f75bfaebff1deb7b3132580f50d253ad089ba24b6786c4138..0e9215d282cea02dcc28ca0e880b53d4c374bc71de1dd45c05bc5ea7f3ba4985 100644 (file)
@@ -1,7 +1,6 @@
 from unittest import TestCase
 
 from hypothesis import given
-from hypothesis.strategies import binary
 from hypothesis.strategies import dictionaries
 from hypothesis.strategies import lists
 
@@ -9,6 +8,7 @@ from pyac import DecodeError
 from pyac import dumps
 from pyac import loads
 from tests.strategies import any_st
+from tests.strategies import junk_st
 from tests.strategies import mapkey_st
 
 
@@ -28,7 +28,7 @@ class TestMap(TestCase):
         )
         self.assertEqual(encoded, expected)
 
-    @given(dictionaries(keys=mapkey_st, values=any_st, max_size=4), binary(max_size=20))
+    @given(dictionaries(keys=mapkey_st, values=any_st, max_size=4), junk_st)
     def test_map_decode(self, test_map, junk):
         encoded = (
             b"\x09" +
@@ -45,7 +45,7 @@ class TestMap(TestCase):
         self.assertEqual(decoded, test_map)
         self.assertEqual(remaining, junk)
 
-    @given(binary(max_size=20))
+    @given(junk_st)
     def test_map_empty(self, junk):
         test_map = {}
         encoded = dumps(test_map) + junk
@@ -55,7 +55,7 @@ class TestMap(TestCase):
         self.assertEqual(decoded, test_map)
         self.assertEqual(remaining, junk)
 
-    @given(lists(mapkey_st, max_size=4), binary(max_size=20))
+    @given(lists(mapkey_st, max_size=4), junk_st)
     def test_decode_to_set(self, keys, junk):
         test_map = {key: None for key in keys}
         encoded = dumps(test_map) + junk
index 8468cc16a1c7d322617d4e1d64f1168571bd5104094734878fc02a3d0618d008..fc91b349a3234c7b02e1edf46e348eeb91a87683065ef4b07bfa03d4142702dc 100644 (file)
@@ -2,7 +2,6 @@ from typing import Any
 from unittest import TestCase
 
 from hypothesis import given
-from hypothesis.strategies import binary
 from hypothesis.strategies import deferred
 from hypothesis.strategies import dictionaries
 from hypothesis.strategies import lists
@@ -10,6 +9,7 @@ from hypothesis.strategies import lists
 from pyac import dumps
 from pyac import loads
 from tests.strategies import any_st
+from tests.strategies import junk_st
 from tests.strategies import mapkey_st
 
 
@@ -21,7 +21,7 @@ everything_st = deferred(
 
 
 class TestSymmetric(TestCase):
-    @given(everything_st, binary(max_size=20))
+    @given(everything_st, junk_st)
     def test_symmetric(self, obj: Any, junk: bytes) -> None:
         encoded: bytes = dumps(obj) + junk
         decoded: Any
index e117bef77219a46185bca0fa0f93a8ec9f256feba4a02513eaed91acecff68eb..1bcebf6b8995353ef0e054fed15aa0df4296a97292be71d9686191614d19160d 100644 (file)
@@ -2,7 +2,6 @@ from datetime import datetime
 from unittest import TestCase
 
 from hypothesis import given
-from hypothesis.strategies import binary
 
 from pyac import DecodeError
 from pyac import dumps
@@ -11,6 +10,8 @@ from pyac import loads
 from pyac import NotEnoughData
 from pyac import Raw
 from pyac import TAI64Base
+from tests.strategies import junk_st
+
 
 TagTAI64 = 0x18
 TagTAI64N = 0x19
@@ -48,7 +49,7 @@ DJB_Leapsecs = (
 
 
 class TestTAI64(TestCase):
-    @given(binary(max_size=20))
+    @given(junk_st)
     def test_encode_decode_tai64(self, junk: bytes) -> None:
         dt = datetime(2023, 10, 1, 12, 0, 0)
         encoded = dumps(dt)
@@ -57,7 +58,7 @@ class TestTAI64(TestCase):
         self.assertEqual(dt, decoded)
         self.assertEqual(remaining, junk)
 
-    @given(binary(max_size=20))
+    @given(junk_st)
     def test_encode_decode_tai64n(self, junk: bytes) -> None:
         dt = datetime(2023, 10, 1, 12, 0, 0, 123456)
         encoded = dumps(dt) + junk
@@ -68,7 +69,7 @@ class TestTAI64(TestCase):
         self.assertEqual(dt, decoded)
         self.assertEqual(remaining, junk)
 
-    @given(binary(max_size=20))
+    @given(junk_st)
     def test_decode_tai64na(self, junk: bytes) -> None:
         encoded = (
             b"\x1A\x40\x00\x00\x00\x65\x19\x5f\x65\x07\x5b\xca\x00\x07\x5b\xca\x00" +