handle DateTime objects in encode_datetime
This commit is contained in:
parent
cdee4d2710
commit
6bb32b699e
3 changed files with 14 additions and 0 deletions
|
|
@ -21,6 +21,7 @@
|
|||
from __future__ import absolute_import
|
||||
import calendar
|
||||
import datetime
|
||||
from koji.xmlrpcplus import DateTime
|
||||
from fnmatch import fnmatch
|
||||
import koji
|
||||
import logging
|
||||
|
|
@ -186,6 +187,8 @@ def encode_datetime(value):
|
|||
"""Convert datetime objects to strings"""
|
||||
if isinstance(value, datetime.datetime):
|
||||
return value.isoformat(' ')
|
||||
elif isinstance(value, DateTime):
|
||||
return datetime.datetime(*value.timetuple()[:6]).isoformat(' ')
|
||||
else:
|
||||
return value
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import types
|
|||
getparser = xmlrpc_client.getparser
|
||||
loads = xmlrpc_client.loads
|
||||
Fault = xmlrpc_client.Fault
|
||||
DateTime = xmlrpc_client.DateTime
|
||||
|
||||
|
||||
class ExtendedMarshaller(xmlrpc_client.Marshaller):
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import datetime
|
|||
import unittest
|
||||
|
||||
import koji.util
|
||||
from koji.xmlrpcplus import DateTime
|
||||
|
||||
|
||||
class testEncodeDatetime(unittest.TestCase):
|
||||
|
|
@ -22,6 +23,15 @@ class testEncodeDatetime(unittest.TestCase):
|
|||
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]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue