]> Cypherpunks repositories - keks.git/commitdiff
Missing non-minimal TAI64 testing
authorSergey Matveev <stargrave@stargrave.org>
Sat, 30 Nov 2024 19:02:51 +0000 (22:02 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sat, 30 Nov 2024 19:38:56 +0000 (22:38 +0300)
pyac/tests/test_tai.py

index d2866077f8d8f190f6ae389345a238ef0af7c4fea5b76cee15ab2c4bd2c7b20d..5105726c93a8ffcc16886e678fd76391e88527e6ebe19259c22fdd34dd1b7379 100644 (file)
@@ -129,6 +129,30 @@ class TestTAI64(TestCase):
             )
         self.assertEqual(str(err.exception), "too many attoseconds")
 
+    def test_zero_nanoseconds(self) -> None:
+        with self.assertRaises(DecodeError) as err:
+            loads(
+                b"\x19\x40\x00\x00\x00\x00\x00\x00\x00" +
+                b"\x00\x00\x00\x00"
+            )
+        self.assertEqual(str(err.exception), "non-minimal TAI64N")
+
+    def test_zero_attoseconds(self) -> None:
+        with self.assertRaises(DecodeError) as err:
+            loads(
+                b"\x1a\x40\x00\x00\x00\x00\x00\x00\x00" +
+                b"\x00\x00\x00\x00" +
+                b"\x00\x00\x00\x00"
+            )
+        self.assertEqual(str(err.exception), "non-minimal TAI64NA")
+
+    def test_zero_nanoseconds_ok_for_tai64na(self) -> None:
+        loads(
+            b"\x1a\x40\x00\x00\x00\x00\x00\x00\x00" +
+            b"\x00\x00\x00\x00" +
+            b"\x00\x00\x00\x01"
+        )
+
 
 class TestLeapsecs(TestCase):
     def test_match_DJB(self) -> None: