Use 'id' instead of 'protocol_id' in federation protocol tests

The actual attribute returned in object references of the /protocols API
is 'id', as in all other keystone APIs that return objects. The
implementation of new_ref() here doesn't actually include an 'id'
reference though, and goes out of it's way to test the wrong thing. This
patch fix that, eliminates the workarounds, and does a touch of
refactoring to bring these tests in line with tests of other client
managers.

Change-Id: I9a272b3ef91934e780106d89b5091b4bfb87ad29
Closes-Bug: 1453847
This commit is contained in:
Dolph Mathews 2015-05-11 15:40:33 +00:00
parent 91de8422de
commit 3f757656a4
1 changed files with 38 additions and 32 deletions

View File

@ -137,17 +137,16 @@ class ProtocolTests(utils.TestCase, utils.CrudTests):
"""
response = copy.deepcopy(ref)
response['id'] = response.pop('protocol_id')
del response['identity_provider']
return response
def new_ref(self, **kwargs):
kwargs.setdefault('id', uuid.uuid4().hex)
kwargs.setdefault('mapping', uuid.uuid4().hex)
kwargs.setdefault('identity_provider', uuid.uuid4().hex)
kwargs.setdefault('protocol_id', uuid.uuid4().hex)
return kwargs
def build_parts(self, identity_provider, protocol_id=None):
def build_parts(self, idp_id, protocol_id=None):
"""Build array used to construct mocking URL.
Construct and return array with URL parts later used
@ -158,7 +157,7 @@ class ProtocolTests(utils.TestCase, utils.CrudTests):
"""
parts = ['OS-FEDERATION', 'identity_providers',
identity_provider, 'protocols']
idp_id, 'protocols']
if protocol_id:
parts.append(protocol_id)
return parts
@ -203,15 +202,19 @@ class ProtocolTests(utils.TestCase, utils.CrudTests):
$identity_provider/protocols/$protocol
"""
request_args = self.new_ref()
expected = self._transform_to_response(request_args)
parts = self.build_parts(request_args['identity_provider'],
request_args['protocol_id'])
ref = self.new_ref()
expected = self._transform_to_response(ref)
parts = self.build_parts(
idp_id=ref['identity_provider'],
protocol_id=ref['id'])
self.stub_entity('PUT', entity=expected,
parts=parts, status_code=201)
returned = self.manager.create(**request_args)
returned = self.manager.create(
protocol_id=ref['id'],
identity_provider=ref['identity_provider'],
mapping=ref['mapping'])
self.assertEqual(expected, returned.to_dict())
request_body = {'mapping_id': request_args['mapping']}
request_body = {'mapping_id': ref['mapping']}
self.assertEntityRequestBodyIs(request_body)
def test_get(self):
@ -221,16 +224,17 @@ class ProtocolTests(utils.TestCase, utils.CrudTests):
$identity_provider/protocols/$protocol
"""
request_args = self.new_ref()
expected = self._transform_to_response(request_args)
ref = self.new_ref()
expected = self._transform_to_response(ref)
parts = self.build_parts(request_args['identity_provider'],
request_args['protocol_id'])
parts = self.build_parts(
idp_id=ref['identity_provider'],
protocol_id=ref['id'])
self.stub_entity('GET', entity=expected,
parts=parts, status_code=201)
returned = self.manager.get(request_args['identity_provider'],
request_args['protocol_id'])
returned = self.manager.get(ref['identity_provider'],
ref['id'])
self.assertIsInstance(returned, self.model)
self.assertEqual(expected, returned.to_dict())
@ -241,14 +245,15 @@ class ProtocolTests(utils.TestCase, utils.CrudTests):
$identity_provider/protocols/$protocol
"""
request_args = self.new_ref()
parts = self.build_parts(request_args['identity_provider'],
request_args['protocol_id'])
ref = self.new_ref()
parts = self.build_parts(
idp_id=ref['identity_provider'],
protocol_id=ref['id'])
self.stub_entity('DELETE', parts=parts, status_code=204)
self.manager.delete(request_args['identity_provider'],
request_args['protocol_id'])
self.manager.delete(ref['identity_provider'],
ref['id'])
def test_list(self):
"""Test listing all federation protocols tied to the Identity Provider.
@ -263,13 +268,13 @@ class ProtocolTests(utils.TestCase, utils.CrudTests):
'mapping_id': uuid.uuid4().hex
}
request_args = self.new_ref()
ref = self.new_ref()
expected = [_ref_protocols() for _ in range(3)]
parts = self.build_parts(request_args['identity_provider'])
parts = self.build_parts(idp_id=ref['identity_provider'])
self.stub_entity('GET', parts=parts,
entity=expected, status_code=200)
returned = self.manager.list(request_args['identity_provider'])
returned = self.manager.list(ref['identity_provider'])
for obj, ref_obj in zip(returned, expected):
self.assertEqual(obj.to_dict(), ref_obj)
@ -293,21 +298,22 @@ class ProtocolTests(utils.TestCase, utils.CrudTests):
$identity_provider/protocols/$protocol
"""
request_args = self.new_ref()
expected = self._transform_to_response(request_args)
ref = self.new_ref()
expected = self._transform_to_response(ref)
parts = self.build_parts(request_args['identity_provider'],
request_args['protocol_id'])
parts = self.build_parts(
idp_id=ref['identity_provider'],
protocol_id=ref['id'])
self.stub_entity('PATCH', parts=parts,
entity=expected, status_code=200)
returned = self.manager.update(request_args['identity_provider'],
request_args['protocol_id'],
mapping=request_args['mapping'])
returned = self.manager.update(ref['identity_provider'],
ref['id'],
mapping=ref['mapping'])
self.assertIsInstance(returned, self.model)
self.assertEqual(expected, returned.to_dict())
request_body = {'mapping_id': request_args['mapping']}
request_body = {'mapping_id': ref['mapping']}
self.assertEntityRequestBodyIs(request_body)