Merge "Add endpoint and service ids to fixtures"

This commit is contained in:
Jenkins
2015-04-30 00:33:39 +00:00
committed by Gerrit Code Review
3 changed files with 22 additions and 8 deletions

View File

@@ -21,12 +21,13 @@ from keystoneclient.fixture import exception
class _Service(dict): class _Service(dict):
def add_endpoint(self, public, admin=None, internal=None, def add_endpoint(self, public, admin=None, internal=None,
tenant_id=None, region=None): tenant_id=None, region=None, id=None):
data = {'tenantId': tenant_id or uuid.uuid4().hex, data = {'tenantId': tenant_id or uuid.uuid4().hex,
'publicURL': public, 'publicURL': public,
'adminURL': admin or public, 'adminURL': admin or public,
'internalURL': internal or public, 'internalURL': internal or public,
'region': region} 'region': region,
'id': id or uuid.uuid4().hex}
self.setdefault('endpoints', []).append(data) self.setdefault('endpoints', []).append(data)
return data return data

View File

@@ -25,8 +25,9 @@ class _Service(dict):
this object and then you can add_endpoints to the service. this object and then you can add_endpoints to the service.
""" """
def add_endpoint(self, interface, url, region=None): def add_endpoint(self, interface, url, region=None, id=None):
data = {'interface': interface, data = {'id': id or uuid.uuid4().hex,
'interface': interface,
'url': url, 'url': url,
'region': region, 'region': region,
'region_id': region} 'region_id': region}
@@ -354,8 +355,8 @@ class Token(dict):
roles.append(data) roles.append(data)
return data return data
def add_service(self, type, name=None): def add_service(self, type, name=None, id=None):
service = _Service(type=type) service = _Service(type=type, id=id or uuid.uuid4().hex)
if name: if name:
service['name'] = name service['name'] = name
self.root.setdefault('catalog', []).append(service) self.root.setdefault('catalog', []).append(service)

View File

@@ -84,6 +84,7 @@ class V2TokenTests(utils.TestCase):
def test_services(self): def test_services(self):
service_type = uuid.uuid4().hex service_type = uuid.uuid4().hex
service_name = uuid.uuid4().hex service_name = uuid.uuid4().hex
endpoint_id = uuid.uuid4().hex
region = uuid.uuid4().hex region = uuid.uuid4().hex
public = uuid.uuid4().hex public = uuid.uuid4().hex
@@ -96,7 +97,8 @@ class V2TokenTests(utils.TestCase):
svc.add_endpoint(public=public, svc.add_endpoint(public=public,
admin=admin, admin=admin,
internal=internal, internal=internal,
region=region) region=region,
id=endpoint_id)
self.assertEqual(1, len(token['access']['serviceCatalog'])) self.assertEqual(1, len(token['access']['serviceCatalog']))
service = token['access']['serviceCatalog'][0]['endpoints'][0] service = token['access']['serviceCatalog'][0]['endpoints'][0]
@@ -105,6 +107,7 @@ class V2TokenTests(utils.TestCase):
self.assertEqual(internal, service['internalURL']) self.assertEqual(internal, service['internalURL'])
self.assertEqual(admin, service['adminURL']) self.assertEqual(admin, service['adminURL'])
self.assertEqual(region, service['region']) self.assertEqual(region, service['region'])
self.assertEqual(endpoint_id, service['id'])
class V3TokenTests(utils.TestCase): class V3TokenTests(utils.TestCase):
@@ -218,13 +221,16 @@ class V3TokenTests(utils.TestCase):
def test_catalog(self): def test_catalog(self):
service_type = uuid.uuid4().hex service_type = uuid.uuid4().hex
service_name = uuid.uuid4().hex service_name = uuid.uuid4().hex
service_id = uuid.uuid4().hex
region = uuid.uuid4().hex region = uuid.uuid4().hex
endpoints = {'public': uuid.uuid4().hex, endpoints = {'public': uuid.uuid4().hex,
'internal': uuid.uuid4().hex, 'internal': uuid.uuid4().hex,
'admin': uuid.uuid4().hex} 'admin': uuid.uuid4().hex}
token = fixture.V3Token() token = fixture.V3Token()
svc = token.add_service(type=service_type, name=service_name) svc = token.add_service(type=service_type,
name=service_name,
id=service_id)
svc.add_standard_endpoints(region=region, **endpoints) svc.add_standard_endpoints(region=region, **endpoints)
self.assertEqual(1, len(token['token']['catalog'])) self.assertEqual(1, len(token['token']['catalog']))
@@ -233,6 +239,12 @@ class V3TokenTests(utils.TestCase):
self.assertEqual(service_name, service['name']) self.assertEqual(service_name, service['name'])
self.assertEqual(service_type, service['type']) self.assertEqual(service_type, service['type'])
self.assertEqual(service_id, service['id'])
for endpoint in service['endpoints']:
# assert an id exists for each endpoint, remove it to make testing
# the endpoint content below easier.
self.assertTrue(endpoint.pop('id'))
for interface, url in six.iteritems(endpoints): for interface, url in six.iteritems(endpoints):
endpoint = {'interface': interface, 'url': url, endpoint = {'interface': interface, 'url': url,