Don't assert exact to_dict output

The context.to_dict in turn calls the oslo.context to_dict. By enforcing
the exact dictionary output of the to_dict tests will fail any time that
oslo.context changes the output of to_dict. This happened with the
release of oslo.context 2.6.0.

For nova testing purposes we should only assert properties of the
dictionary output that were added by nova and rely on oslo.context doing
the correct thing regarding deserializing its own options.

Related-Bug: #1602081
Change-Id: Ib91a73a017e02b48ec01bbf8c28f946fb5120ba5
This commit is contained in:
Jamie Lennox 2016-07-22 05:21:23 +10:00
parent eec3a2b9e8
commit 9f99f6c212
1 changed files with 28 additions and 27 deletions

View File

@ -156,35 +156,35 @@ class ContextTestCase(test.NoDBTestCase):
self.assertIs(o_context.get_current(), ctx1)
def test_convert_from_rc_to_dict(self):
request_id = 'req-679033b7-1755-4929-bf85-eb3bfaef7e0b'
ctx = context.RequestContext(
111, 222, request_id='req-679033b7-1755-4929-bf85-eb3bfaef7e0b',
111, 222, request_id=request_id,
timestamp='2015-03-02T22:31:56.641629')
values2 = ctx.to_dict()
expected_values = {'auth_token': None,
'domain': None,
'instance_lock_checked': False,
'is_admin': False,
'project_id': 222,
'project_domain': None,
'project_name': None,
'quota_class': None,
'read_deleted': 'no',
'read_only': False,
'remote_address': None,
'request_id':
'req-679033b7-1755-4929-bf85-eb3bfaef7e0b',
'resource_uuid': None,
'roles': [],
'service_catalog': [],
'show_deleted': False,
'tenant': 222,
'timestamp': '2015-03-02T22:31:56.641629',
'user': 111,
'user_domain': None,
'user_id': 111,
'user_identity': '111 222 - - -',
'user_name': None}
self.assertEqual(expected_values, values2)
self.assertIsNone(values2['auth_token'])
self.assertIsNone(values2['domain'])
self.assertEqual(False, values2['instance_lock_checked'])
self.assertEqual(False, values2['is_admin'])
self.assertEqual(222, values2['project_id'])
self.assertIsNone(values2['project_domain'])
self.assertIsNone(values2['project_name'])
self.assertIsNone(values2['quota_class'])
self.assertEqual('no', values2['read_deleted'])
self.assertEqual(False, values2['read_only'])
self.assertIsNone(values2['remote_address'])
self.assertEqual(request_id, values2['request_id'])
self.assertIsNone(values2['resource_uuid'])
self.assertEqual([], values2['roles'])
self.assertEqual([], values2['service_catalog'])
self.assertEqual(False, values2['show_deleted'])
self.assertEqual(222, values2['tenant'])
self.assertEqual('2015-03-02T22:31:56.641629', values2['timestamp'])
self.assertEqual(111, values2['user'])
self.assertIsNone(values2['user_domain'])
self.assertEqual(111, values2['user_id'])
self.assertEqual('111 222 - - -', values2['user_identity'])
self.assertIsNone(values2['user_name'])
def test_convert_from_dict_then_to_dict(self):
values = {'user': '111',
@ -211,7 +211,8 @@ class ContextTestCase(test.NoDBTestCase):
self.assertEqual('111', ctx.user_id)
self.assertEqual('222', ctx.project_id)
values2 = ctx.to_dict()
self.assertEqual(values, values2)
for k, v in values.items():
self.assertEqual(v, values2[k])
@mock.patch.object(context.policy, 'authorize')
def test_can(self, mock_authorize):