caellion-python-commons
test_serializers_datetime_serializer.py
Go to the documentation of this file.
1 # test framework
2 import unittest
3 from nose2.tools import params
4 import datetime
5 
6 # package
7 from caellion.pycommons.serializers.datetime_serializer import DateTimeUnixSerializer
8 from caellion.pycommons.serializers.datetime_serializer import DateTimeUnixMillisSerializer
9 from caellion.pycommons.serializers.datetime_serializer import DateTimeUnixMicrosSerializer
10 from caellion.pycommons.serializers.datetime_serializer import DateTimeIsoTimeSerializer
11 
12 
13 # test cases
14 class TestSerializersDateTimeSerializer(unittest.TestCase):
15  @params(
16  ("2022-01-01T00:00:00+00:00", "2022-01-01T00:00:00+00:00"), ("2022-01-01T00:00:00-01:00", "2022-01-01T01:00:00+00:00"),
17  )
18  def test_serialize_isoformat(self, input, expected):
19  input = datetime.datetime.fromisoformat(input)
20  self.assertEqual(DateTimeIsoTimeSerializer.serialize(input), expected)
21 
22  @params(
23  ("2022-01-01T00:00:00.000000+00:00", 1640995200), ("2022-01-01T00:00:00.000000-01:00", 1640998800),
24  )
25  def test_serialize_unixseconds(self, input, expected):
26  input = datetime.datetime.fromisoformat(input)
27  self.assertEqual(DateTimeUnixSerializer.serialize(input), expected)
28 
29  @params(
30  ("2022-01-01T00:00:00.000000+00:00", 1640995200000), ("2022-01-01T00:00:00.000000-01:00", 1640998800000),
31  )
32  def test_serialize_unixmillis(self, input, expected):
33  input = datetime.datetime.fromisoformat(input)
34  self.assertEqual(DateTimeUnixMillisSerializer.serialize(input), expected)
35 
36  @params(
37  ("2022-01-01T00:00:00.000000+00:00", 1640995200000000), ("2022-01-01T00:00:00.000000-01:00", 1640998800000000),
38  )
39  def test_serialize_unixmicros(self, input, expected):
40  input = datetime.datetime.fromisoformat(input)
41  self.assertEqual(DateTimeUnixMicrosSerializer.serialize(input), expected)
42 
43 
44 if __name__ == "__main__":
45  unittest.main()
This module provides various serializers for datetime.datetime object.