from unittest import TestCase
from hypothesis import given
+from hypothesis.strategies import datetimes
from pyac import DecodeError
from pyac import dumps
class TestTAI64(TestCase):
- @given(junk_st)
- def test_encode_decode_tai64(self, junk: bytes) -> None:
- dt = datetime(2023, 10, 1, 12, 0, 0)
+ @given(datetimes(), junk_st)
+ def test_symmetric_tai64(self, dt: datetime, junk: bytes) -> None:
+ dt = dt.replace(microsecond=0)
encoded = dumps(dt)
- self.assertSequenceEqual(
- encoded,
- b"\x18\x40\x00\x00\x00\x65\x19\x5f\x65",
- )
decoded, tail = loads(encoded + junk)
self.assertEqual(dt, decoded)
self.assertSequenceEqual(tail, junk)
- @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
- self.assertSequenceEqual(
- encoded,
- b"\x19\x40\x00\x00\x00\x65\x19\x5f\x65\x07\x5b\xca\x00" + junk,
- )
- decoded, tail = loads(encoded)
+ @given(datetimes(), junk_st)
+ def test_symmetric_tai64n(self, dt: datetime, junk: bytes) -> None:
+ encoded = dumps(dt)
+ decoded, tail = loads(encoded + junk)
self.assertEqual(dt, decoded)
self.assertSequenceEqual(tail, junk)