debian-koji/tests/test_lib/test_encode_datetime.py
2020-10-06 15:00:23 +02:00

48 lines
1.7 KiB
Python

from __future__ import absolute_import
import datetime
import unittest
import koji.util
from koji.xmlrpcplus import DateTime
class testEncodeDatetime(unittest.TestCase):
DATES = [
[datetime.datetime(2001, 2, 3, 9, 45, 32),
'2001-02-03 09:45:32'],
[datetime.datetime(1970, 1, 1, 0, 0),
'1970-01-01 00:00:00'],
[datetime.datetime(2017, 8, 3, 10, 19, 39, 474556),
'2017-08-03 10:19:39.474556'],
]
def test_simple_dates(self):
for dt, dstr in self.DATES:
chk1 = koji.util.encode_datetime(dt)
chk2 = koji.util.encode_datetime_recurse(dt)
self.assertEqual(chk1, dstr)
self.assertEqual(chk2, dstr)
def test_xmlrpc_dates(self):
# we skip the last because xmlrpc's DateTime class does not preserve
# fractions of seconds
for dt, dstr in self.DATES[:2]:
dt = DateTime(dt)
chk1 = koji.util.encode_datetime(dt)
chk2 = koji.util.encode_datetime_recurse(dt)
self.assertEqual(chk1, dstr)
self.assertEqual(chk2, dstr)
def test_embedded_dates(self):
dt1, ds1 = self.DATES[0]
dt2, ds2 = self.DATES[1]
dt3, ds3 = self.DATES[2]
data1 = [1, "2", [3, dt1], {"4": dt2}, [[[[{"five": dt3}]]]]]
fix_1 = [1, "2", [3, ds1], {"4": ds2}, [[[[{"five": ds3}]]]]]
data2 = {1: dt1, "2": [dt2, dt1], "three": {"3": {3: dt3}}}
fix_2 = {1: ds1, "2": [ds2, ds1], "three": {"3": {3: ds3}}}
chk1 = koji.util.encode_datetime_recurse(data1)
chk2 = koji.util.encode_datetime_recurse(data2)
self.assertEqual(chk1, fix_1)
self.assertEqual(chk2, fix_2)