diff options
author | Julien Danjou <julien@danjou.info> | 2013-08-22 14:15:14 +0200 |
---|---|---|
committer | Julien Danjou <julien@danjou.info> | 2013-08-22 14:15:14 +0200 |
commit | bc3ed747f047a8bfadb48c6c60746c8bfa7b65bc (patch) | |
tree | c9b32b85a39dd2fb1d9754e4bf18f6b5548c2993 | |
parent | 706caf96fc19255a52a3565e3a5ecc7290245ebe (diff) | |
download | oslo-serialization-bc3ed747f047a8bfadb48c6c60746c8bfa7b65bc.tar.gz |
jsonutils: do not require xmlrpclib
xmlrpclib isn't shipped anymore in Python 3, so let's support it
optionally.
Change-Id: Ic94f238a5f92f28ae1b6154fb56f00c4c9fa3283
-rw-r--r-- | openstack/common/jsonutils.py | 8 | ||||
-rw-r--r-- | tests/unit/test_jsonutils.py | 7 |
2 files changed, 12 insertions, 3 deletions
diff --git a/openstack/common/jsonutils.py b/openstack/common/jsonutils.py index 5a0235d..bc62618 100644 --- a/openstack/common/jsonutils.py +++ b/openstack/common/jsonutils.py @@ -39,7 +39,11 @@ import inspect import itertools import json import types -import xmlrpclib +try: + import xmlrpclib +except ImportError: + # NOTE(jd): xmlrpclib is not shipped with Python 3 + xmlrpclib = None import six @@ -126,7 +130,7 @@ def to_primitive(value, convert_instances=False, convert_datetime=True, # It's not clear why xmlrpclib created their own DateTime type, but # for our purposes, make it a datetime type which is explicitly # handled - if isinstance(value, xmlrpclib.DateTime): + if xmlrpclib and isinstance(value, xmlrpclib.DateTime): value = datetime.datetime(*tuple(value.timetuple())[:6]) if convert_datetime and isinstance(value, datetime.datetime): diff --git a/tests/unit/test_jsonutils.py b/tests/unit/test_jsonutils.py index 0d22e7e..0bf811a 100644 --- a/tests/unit/test_jsonutils.py +++ b/tests/unit/test_jsonutils.py @@ -16,10 +16,14 @@ # under the License. import datetime -import xmlrpclib +try: + import xmlrpclib +except ImportError: + xmlrpclib = None import netaddr import six +import testtools from openstack.common import jsonutils from openstack.common import test @@ -64,6 +68,7 @@ class ToPrimitiveTestCase(test.BaseTestCase): x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) self.assertEqual(jsonutils.to_primitive(x, convert_datetime=False), x) + @testtools.skipUnless(xmlrpclib, "xmlrpclib not available") def test_DateTime(self): x = xmlrpclib.DateTime() x.decode("19710203T04:05:06") |