dav_events: improved tests for Iso8601Serializer
Run tests / Execute tox to run the test suite (push) Successful in 2m50s

This commit is contained in:
2026-06-15 13:57:36 +02:00
parent b2fe213b0b
commit 57e0c2cc1b
2 changed files with 26 additions and 1 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ class Iso8601Serializer:
value -= offset
elif gd['offdir'] == '-':
value += offset
else:
else: # pragma no cover
raise ValueError('Offset format not recognized \'{str}\''.format(str=gd['offset']))
value = value.replace(tzinfo=pytz.UTC)
+25
View File
@@ -111,6 +111,31 @@ class Iso8601SerializerTestCase(TestCase):
self.assertIsInstance(deserialized, obj.__class__)
self.assertEqual(deserialized, obj)
def test_deserialize_with_valid_offset(self):
test_data = (
('1976-02-01T12:34:56+02', '1976-02-01 10:34:56+00:00'),
('1976-02-01T12:34:56+10:04', '1976-02-01 02:30:56+00:00'),
('1976-02-01T12:34:56-02', '1976-02-01 14:34:56+00:00'),
('1976-02-01T12:34:56-12:14', '1976-02-02 00:48:56+00:00'),
)
for input_text, dt_str in test_data:
text = 'ISO8601:{}'.format(input_text)
deserialized = Iso8601Serializer.deserialize(text)
self.assertEqual(str(deserialized), dt_str)
def test_deserialize_with_invalid_offset(self):
invalid_data = (
'1976-02-01T12:34:56+2',
'1976-02-01T12:34:56+02:02:02',
'1976-02-01T12:34:56+-02',
'1976-02-01T12:34:56=02',
'1976-02-01T12:34:56+CEST',
)
for input_text in invalid_data:
text = 'ISO8601:{}'.format(input_text)
with self.assertRaisesRegex(ValueError, 'Format not recognized \'.*\''):
Iso8601Serializer.deserialize(text)
def test_deserialize_invalid(self):
invalid_data = (
(None, TypeError, 'Expected string type, not NoneType'),