dav_events: improved tests for Iso8601Serializer
Run tests / Execute tox to run the test suite (push) Successful in 2m50s
Run tests / Execute tox to run the test suite (push) Successful in 2m50s
This commit is contained in:
@@ -91,7 +91,7 @@ class Iso8601Serializer:
|
|||||||
value -= offset
|
value -= offset
|
||||||
elif gd['offdir'] == '-':
|
elif gd['offdir'] == '-':
|
||||||
value += offset
|
value += offset
|
||||||
else:
|
else: # pragma no cover
|
||||||
raise ValueError('Offset format not recognized \'{str}\''.format(str=gd['offset']))
|
raise ValueError('Offset format not recognized \'{str}\''.format(str=gd['offset']))
|
||||||
value = value.replace(tzinfo=pytz.UTC)
|
value = value.replace(tzinfo=pytz.UTC)
|
||||||
|
|
||||||
|
|||||||
@@ -111,6 +111,31 @@ class Iso8601SerializerTestCase(TestCase):
|
|||||||
self.assertIsInstance(deserialized, obj.__class__)
|
self.assertIsInstance(deserialized, obj.__class__)
|
||||||
self.assertEqual(deserialized, obj)
|
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):
|
def test_deserialize_invalid(self):
|
||||||
invalid_data = (
|
invalid_data = (
|
||||||
(None, TypeError, 'Expected string type, not NoneType'),
|
(None, TypeError, 'Expected string type, not NoneType'),
|
||||||
|
|||||||
Reference in New Issue
Block a user