Replace assertDictContainsSubset with stdlib ver
Code copied and adopted from unittest.TestCase class from CPython 2.7 stdlib. Change-Id: Ifae16f947600f7a9d1f8d1a879fd914d0cf4d65e
This commit is contained in:
@@ -343,14 +343,32 @@ class TestCase(NoModule, unittest.TestCase):
|
||||
def assertNotEmpty(self, l):
|
||||
self.assertTrue(len(l))
|
||||
|
||||
def assertDictContainsSubset(self, dict1, dict2):
|
||||
if len(dict1) < len(dict2):
|
||||
(subset, fullset) = dict1, dict2
|
||||
else:
|
||||
(subset, fullset) = dict2, dict1
|
||||
for x in subset:
|
||||
self.assertIn(x, fullset)
|
||||
self.assertEquals(subset.get(x), fullset.get(x))
|
||||
def assertDictContainsSubset(self, expected, actual, msg=None):
|
||||
"""Checks whether actual is a superset of expected."""
|
||||
safe_repr = unittest.util.safe_repr
|
||||
missing = []
|
||||
mismatched = []
|
||||
for key, value in expected.iteritems():
|
||||
if key not in actual:
|
||||
missing.append(key)
|
||||
elif value != actual[key]:
|
||||
mismatched.append('%s, expected: %s, actual: %s' %
|
||||
(safe_repr(key), safe_repr(value),
|
||||
safe_repr(actual[key])))
|
||||
|
||||
if not (missing or mismatched):
|
||||
return
|
||||
|
||||
standardMsg = ''
|
||||
if missing:
|
||||
standardMsg = 'Missing: %s' % ','.join(safe_repr(m) for m in
|
||||
missing)
|
||||
if mismatched:
|
||||
if standardMsg:
|
||||
standardMsg += '; '
|
||||
standardMsg += 'Mismatched values: %s' % ','.join(mismatched)
|
||||
|
||||
self.fail(self._formatMessage(msg, standardMsg))
|
||||
|
||||
@staticmethod
|
||||
def skip_if_no_ipv6():
|
||||
|
||||
@@ -134,7 +134,7 @@ class IdentityTests(object):
|
||||
user.pop('password')
|
||||
self.assertEquals(metadata_ref, {"roles":
|
||||
[CONF.member_role_id]})
|
||||
self.assertDictContainsSubset(user_ref, user)
|
||||
self.assertDictContainsSubset(user, user_ref)
|
||||
self.assertDictEqual(tenant_ref, self.tenant_baz)
|
||||
|
||||
def test_password_hashed(self):
|
||||
@@ -1870,12 +1870,12 @@ class IdentityTests(object):
|
||||
'name': uuid.uuid4().hex}
|
||||
self.identity_man.create_group({}, group['id'], group)
|
||||
group_ref = self.identity_api.get_group(group['id'])
|
||||
self.assertDictContainsSubset(group_ref, group)
|
||||
self.assertDictContainsSubset(group, group_ref)
|
||||
|
||||
group['name'] = uuid.uuid4().hex
|
||||
self.identity_api.update_group(group['id'], group)
|
||||
group_ref = self.identity_api.get_group(group['id'])
|
||||
self.assertDictContainsSubset(group_ref, group)
|
||||
self.assertDictContainsSubset(group, group_ref)
|
||||
|
||||
self.identity_api.delete_group(group['id'])
|
||||
self.assertRaises(exception.GroupNotFound,
|
||||
@@ -1946,12 +1946,12 @@ class IdentityTests(object):
|
||||
'domain_id': domain['id']}
|
||||
self.identity_man.create_project({}, project['id'], project)
|
||||
project_ref = self.identity_api.get_project(project['id'])
|
||||
self.assertDictContainsSubset(project_ref, project)
|
||||
self.assertDictContainsSubset(project, project_ref)
|
||||
|
||||
project['name'] = uuid.uuid4().hex
|
||||
self.identity_api.update_project(project['id'], project)
|
||||
project_ref = self.identity_api.get_project(project['id'])
|
||||
self.assertDictContainsSubset(project_ref, project)
|
||||
self.assertDictContainsSubset(project, project_ref)
|
||||
|
||||
self.identity_api.delete_project(project['id'])
|
||||
self.assertRaises(exception.ProjectNotFound,
|
||||
@@ -1983,14 +1983,14 @@ class IdentityTests(object):
|
||||
user_ref = self.identity_api.get_user(user['id'])
|
||||
del user['password']
|
||||
user_ref_dict = dict((x, user_ref[x]) for x in user_ref)
|
||||
self.assertDictContainsSubset(user_ref_dict, user)
|
||||
self.assertDictContainsSubset(user, user_ref_dict)
|
||||
|
||||
user['password'] = uuid.uuid4().hex
|
||||
self.identity_api.update_user(user['id'], user)
|
||||
user_ref = self.identity_api.get_user(user['id'])
|
||||
del user['password']
|
||||
user_ref_dict = dict((x, user_ref[x]) for x in user_ref)
|
||||
self.assertDictContainsSubset(user_ref_dict, user)
|
||||
self.assertDictContainsSubset(user, user_ref_dict)
|
||||
|
||||
self.identity_api.delete_user(user['id'])
|
||||
self.assertRaises(exception.UserNotFound,
|
||||
|
||||
Reference in New Issue
Block a user