Merge "Handle nested serialized json entries in assertJsonEqual"

This commit is contained in:
Zuul 2018-07-03 12:54:22 +00:00 committed by Gerrit Code Review
commit ee7c39e441
2 changed files with 13 additions and 2 deletions

View File

@ -489,7 +489,18 @@ class TestCase(testtools.TestCase):
return sorted(items)
return x
def try_deserialize(entry):
"""Try to deserialize string entry; if not json, return entry"""
if isinstance(entry, six.string_types):
try:
return jsonutils.loads(entry)
except ValueError:
pass
return entry
def inner(expected, observed, path='root'):
expected = try_deserialize(expected)
observed = try_deserialize(observed)
if isinstance(expected, dict) and isinstance(observed, dict):
self.assertEqual(
len(expected), len(observed),

View File

@ -11965,8 +11965,8 @@ class LibvirtConnTestCase(test.NoDBTestCase,
# mix-in is ever used for these objects.
expected_migrate_data.obj_reset_changes(recursive=True)
returned_migrate_data.obj_reset_changes(recursive=True)
self.assertEqual(expected_migrate_data.obj_to_primitive(),
returned_migrate_data.obj_to_primitive())
self.assertJsonEqual(expected_migrate_data.obj_to_primitive(),
returned_migrate_data.obj_to_primitive())
def test_pre_live_migration_volume_backed(self):
self._test_pre_live_migration_volume_backed()