diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_plistlib.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_plistlib.py b/Lib/test/test_plistlib.py index fef9f39972..f0e9e5a9ea 100644 --- a/Lib/test/test_plistlib.py +++ b/Lib/test/test_plistlib.py @@ -428,6 +428,15 @@ class TestPlistlib(unittest.TestCase): b'\x00\x00\x00\x00\x00\x00\x00\x13') self.assertEqual(plistlib.loads(data), {'a': 'b'}) + def test_large_timestamp(self): + # Issue #26709: 32-bit timestamp out of range + for ts in -2**31-1, 2**31: + with self.subTest(ts=ts): + d = (datetime.datetime.utcfromtimestamp(0) + + datetime.timedelta(seconds=ts)) + data = plistlib.dumps(d, fmt=plistlib.FMT_BINARY) + self.assertEqual(plistlib.loads(data), d) + class TestPlistlibDeprecated(unittest.TestCase): def test_io_deprecated(self): |