From ba76b954e69de56f76f9db5cade1780bc351be67 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Tue, 15 May 2012 12:54:16 -0400 Subject: Make use of openstack.common.jsonutils. This patch imports jsonutils from openstack-common. It removes the equivalent code from nova.utils and then converts the code base to use jsonutils. The primary motivator for this change was to remove the rest of the dependencies from nova.rpc on nova.utils. Change-Id: If43658b9b098ed56cba018c81be268b8c3e2916a --- .../openstack/compute/contrib/test_disk_config.py | 32 ++++---- .../compute/contrib/test_scheduler_hints.py | 8 +- nova/tests/api/openstack/fakes.py | 3 +- nova/tests/baremetal/test_proxy_bare_metal.py | 6 +- nova/tests/notifier/test_capacity_notifier.py | 4 +- nova/tests/test_libvirt.py | 9 ++- nova/tests/test_utils.py | 87 ---------------------- 7 files changed, 32 insertions(+), 117 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/api/openstack/compute/contrib/test_disk_config.py b/nova/tests/api/openstack/compute/contrib/test_disk_config.py index 87b21beb1..c9e4145e4 100644 --- a/nova/tests/api/openstack/compute/contrib/test_disk_config.py +++ b/nova/tests/api/openstack/compute/contrib/test_disk_config.py @@ -22,10 +22,10 @@ from nova.api.openstack.compute import extensions from nova.api.openstack import wsgi import nova.db.api from nova import flags +from nova.openstack.common import jsonutils import nova.rpc from nova import test from nova.tests.api.openstack import fakes -from nova import utils MANUAL_INSTANCE_UUID = fakes.FAKE_UUID @@ -130,19 +130,19 @@ class DiskConfigTestCase(test.TestCase): req = fakes.HTTPRequest.blank( '/fake/servers/%s' % MANUAL_INSTANCE_UUID) res = req.get_response(self.app) - server_dict = utils.loads(res.body)['server'] + server_dict = jsonutils.loads(res.body)['server'] self.assertDiskConfig(server_dict, 'MANUAL') req = fakes.HTTPRequest.blank( '/fake/servers/%s' % AUTO_INSTANCE_UUID) res = req.get_response(self.app) - server_dict = utils.loads(res.body)['server'] + server_dict = jsonutils.loads(res.body)['server'] self.assertDiskConfig(server_dict, 'AUTO') def test_detail_servers(self): req = fakes.HTTPRequest.blank('/fake/servers/detail') res = req.get_response(self.app) - server_dicts = utils.loads(res.body)['servers'] + server_dicts = jsonutils.loads(res.body)['servers'] expectations = ['MANUAL', 'AUTO'] for server_dict, expected in zip(server_dicts, expectations): @@ -152,19 +152,19 @@ class DiskConfigTestCase(test.TestCase): req = fakes.HTTPRequest.blank( '/fake/images/a440c04b-79fa-479c-bed1-0b816eaec379') res = req.get_response(self.app) - image_dict = utils.loads(res.body)['image'] + image_dict = jsonutils.loads(res.body)['image'] self.assertDiskConfig(image_dict, 'MANUAL') req = fakes.HTTPRequest.blank( '/fake/images/70a599e0-31e7-49b7-b260-868f441e862b') res = req.get_response(self.app) - image_dict = utils.loads(res.body)['image'] + image_dict = jsonutils.loads(res.body)['image'] self.assertDiskConfig(image_dict, 'AUTO') def test_detail_image(self): req = fakes.HTTPRequest.blank('/fake/images/detail') res = req.get_response(self.app) - image_dicts = utils.loads(res.body)['images'] + image_dicts = jsonutils.loads(res.body)['images'] expectations = ['MANUAL', 'AUTO'] for image_dict, expected in zip(image_dicts, expectations): @@ -184,9 +184,9 @@ class DiskConfigTestCase(test.TestCase): API_DISK_CONFIG: 'AUTO' }} - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) - server_dict = utils.loads(res.body)['server'] + server_dict = jsonutils.loads(res.body)['server'] self.assertDiskConfig(server_dict, 'AUTO') def test_create_server_override_manual(self): @@ -200,9 +200,9 @@ class DiskConfigTestCase(test.TestCase): API_DISK_CONFIG: 'MANUAL' }} - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) - server_dict = utils.loads(res.body)['server'] + server_dict = jsonutils.loads(res.body)['server'] self.assertDiskConfig(server_dict, 'MANUAL') def test_create_server_detect_from_image(self): @@ -218,9 +218,9 @@ class DiskConfigTestCase(test.TestCase): 'flavorRef': '1', }} - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) - server_dict = utils.loads(res.body)['server'] + server_dict = jsonutils.loads(res.body)['server'] self.assertDiskConfig(server_dict, 'MANUAL') req = fakes.HTTPRequest.blank('/fake/servers') @@ -232,9 +232,9 @@ class DiskConfigTestCase(test.TestCase): 'flavorRef': '1', }} - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) - server_dict = utils.loads(res.body)['server'] + server_dict = jsonutils.loads(res.body)['server'] self.assertDiskConfig(server_dict, 'AUTO') def test_update_server_invalid_disk_config(self): @@ -244,7 +244,7 @@ class DiskConfigTestCase(test.TestCase): req.method = 'PUT' req.content_type = 'application/json' body = {'server': {API_DISK_CONFIG: 'server_test'}} - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) self.assertEqual(res.status_int, 400) expected_msg = ('{"badRequest": {"message": "%s must be either' diff --git a/nova/tests/api/openstack/compute/contrib/test_scheduler_hints.py b/nova/tests/api/openstack/compute/contrib/test_scheduler_hints.py index 167d46d02..59ad8abbc 100644 --- a/nova/tests/api/openstack/compute/contrib/test_scheduler_hints.py +++ b/nova/tests/api/openstack/compute/contrib/test_scheduler_hints.py @@ -19,10 +19,10 @@ from nova.api.openstack import compute from nova.api.openstack.compute import extensions from nova.api.openstack import wsgi import nova.db.api +from nova.openstack.common import jsonutils import nova.rpc from nova import test from nova.tests.api.openstack import fakes -from nova import utils UUID = fakes.FAKE_UUID @@ -52,7 +52,7 @@ class SchedulerHintsTestCase(test.TestCase): 'flavorRef': '1', }} - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) self.assertEqual(202, res.status_int) @@ -76,7 +76,7 @@ class SchedulerHintsTestCase(test.TestCase): 'os:scheduler_hints': {'a': 'b'}, } - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) self.assertEqual(202, res.status_int) @@ -93,6 +93,6 @@ class SchedulerHintsTestCase(test.TestCase): 'os:scheduler_hints': 'here', } - req.body = utils.dumps(body) + req.body = jsonutils.dumps(body) res = req.get_response(self.app) self.assertEqual(400, res.status_int) diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py index f06878362..1b51249d6 100644 --- a/nova/tests/api/openstack/fakes.py +++ b/nova/tests/api/openstack/fakes.py @@ -39,6 +39,7 @@ from nova import context from nova.db.sqlalchemy import models from nova import exception as exc import nova.image.fake +from nova.openstack.common import jsonutils from nova.tests import fake_network from nova.tests.glance import stubs as glance_stubs from nova import utils @@ -464,7 +465,7 @@ def create_info_cache(nw_cache): return {"info_cache": {"network_info": nw_cache}} if not isinstance(nw_cache, basestring): - nw_cache = utils.dumps(nw_cache) + nw_cache = jsonutils.dumps(nw_cache) return {"info_cache": {"network_info": nw_cache}} diff --git a/nova/tests/baremetal/test_proxy_bare_metal.py b/nova/tests/baremetal/test_proxy_bare_metal.py index 323043800..128b16cb8 100644 --- a/nova/tests/baremetal/test_proxy_bare_metal.py +++ b/nova/tests/baremetal/test_proxy_bare_metal.py @@ -20,9 +20,9 @@ import mox import StringIO from nova import flags -from nova import utils from nova import test from nova.compute import power_state +from nova.openstack.common import jsonutils from nova.tests import fake_utils from nova import exception @@ -95,8 +95,8 @@ class DomainReadWriteTestCase(test.TestCase): def assertJSONEquals(self, x, y): """Check if two json strings represent the equivalent Python object""" - self.assertEquals(utils.loads(x), utils.loads(y)) - return utils.loads(x) == utils.loads(y) + self.assertEquals(jsonutils.loads(x), jsonutils.loads(y)) + return jsonutils.loads(x) == jsonutils.loads(y) def test_write_domain(self): """Write the domain to file""" diff --git a/nova/tests/notifier/test_capacity_notifier.py b/nova/tests/notifier/test_capacity_notifier.py index e41c52700..3b642a77b 100644 --- a/nova/tests/notifier/test_capacity_notifier.py +++ b/nova/tests/notifier/test_capacity_notifier.py @@ -15,8 +15,8 @@ import nova.db.api from nova.notifier import capacity_notifier as cn +from nova.openstack.common import jsonutils from nova import test -from nova import utils class CapacityNotifierTestCase(test.TestCase): @@ -24,7 +24,7 @@ class CapacityNotifierTestCase(test.TestCase): def _make_msg(self, host, event): usage_info = dict(memory_mb=123, disk_gb=456) - payload = utils.to_primitive(usage_info, convert_instances=True) + payload = jsonutils.to_primitive(usage_info, convert_instances=True) return dict( publisher_id="compute.%s" % host, event_type="compute.instance.%s" % event, diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index b0b165c70..db804acee 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -38,6 +38,7 @@ from nova import exception from nova import flags from nova import log as logging from nova.openstack.common import importutils +from nova.openstack.common import jsonutils from nova import test from nova.tests import fake_network from nova.tests import fake_libvirt_utils @@ -1405,7 +1406,7 @@ class LibvirtConnTestCase(test.TestCase): self.mox.ReplayAll() conn = connection.LibvirtConnection(False) info = conn.get_instance_disk_info(instance_ref.name) - info = utils.loads(info) + info = jsonutils.loads(info) self.assertEquals(info[0]['type'], 'raw') self.assertEquals(info[0]['path'], '/test/disk') self.assertEquals(info[0]['disk_size'], 10737418240) @@ -2507,7 +2508,7 @@ class LibvirtConnectionTestCase(test.TestCase): 'virt_disk_size': '10737418240', 'backing_file': '/base/disk.local', 'disk_size':'83886080'}] - disk_info_text = utils.dumps(disk_info) + disk_info_text = jsonutils.dumps(disk_info) def fake_get_instance_disk_info(instance): return disk_info_text @@ -2578,7 +2579,7 @@ class LibvirtConnectionTestCase(test.TestCase): 'local_gb': 10, 'backing_file': '/base/disk'}, {'type': 'raw', 'path': '/test/disk.local', 'local_gb': 10, 'backing_file': '/base/disk.local'}] - disk_info_text = utils.dumps(disk_info) + disk_info_text = jsonutils.dumps(disk_info) def fake_extend(path, size): pass @@ -2668,4 +2669,4 @@ class LibvirtNonblockingTestCase(test.TestCase): """Test bug 962840""" import nova.virt.libvirt.connection connection = nova.virt.libvirt.connection.get_connection('') - utils.to_primitive(connection._conn, convert_instances=True) + jsonutils.to_primitive(connection._conn, convert_instances=True) diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py index a8de63449..0abc19c6d 100644 --- a/nova/tests/test_utils.py +++ b/nova/tests/test_utils.py @@ -443,93 +443,6 @@ class IsUUIDLikeTestCase(test.TestCase): self.assertUUIDLike(str(utils.gen_uuid()), True) -class ToPrimitiveTestCase(test.TestCase): - def test_list(self): - self.assertEquals(utils.to_primitive([1, 2, 3]), [1, 2, 3]) - - def test_empty_list(self): - self.assertEquals(utils.to_primitive([]), []) - - def test_tuple(self): - self.assertEquals(utils.to_primitive((1, 2, 3)), [1, 2, 3]) - - def test_dict(self): - self.assertEquals(utils.to_primitive(dict(a=1, b=2, c=3)), - dict(a=1, b=2, c=3)) - - def test_empty_dict(self): - self.assertEquals(utils.to_primitive({}), {}) - - def test_datetime(self): - x = datetime.datetime(1, 2, 3, 4, 5, 6, 7) - self.assertEquals(utils.to_primitive(x), "0001-02-03 04:05:06.000007") - - def test_iter(self): - class IterClass(object): - def __init__(self): - self.data = [1, 2, 3, 4, 5] - self.index = 0 - - def __iter__(self): - return self - - def next(self): - if self.index == len(self.data): - raise StopIteration - self.index = self.index + 1 - return self.data[self.index - 1] - - x = IterClass() - self.assertEquals(utils.to_primitive(x), [1, 2, 3, 4, 5]) - - def test_iteritems(self): - class IterItemsClass(object): - def __init__(self): - self.data = dict(a=1, b=2, c=3).items() - self.index = 0 - - def __iter__(self): - return self - - def next(self): - if self.index == len(self.data): - raise StopIteration - self.index = self.index + 1 - return self.data[self.index - 1] - - x = IterItemsClass() - ordered = utils.to_primitive(x) - ordered.sort() - self.assertEquals(ordered, [['a', 1], ['b', 2], ['c', 3]]) - - def test_instance(self): - class MysteryClass(object): - a = 10 - - def __init__(self): - self.b = 1 - - x = MysteryClass() - self.assertEquals(utils.to_primitive(x, convert_instances=True), - dict(b=1)) - - self.assertEquals(utils.to_primitive(x), x) - - def test_typeerror(self): - x = bytearray # Class, not instance - self.assertEquals(utils.to_primitive(x), u"") - - def test_nasties(self): - def foo(): - pass - x = [datetime, foo, dir] - ret = utils.to_primitive(x) - self.assertEquals(len(ret), 3) - self.assertTrue(ret[0].startswith(u"') - - class MonkeyPatchTestCase(test.TestCase): """Unit test for utils.monkey_patch().""" def setUp(self): -- cgit