summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2012-12-06 12:31:51 -0800
committerBrian Waldon <bcwaldon@gmail.com>2012-12-06 12:34:00 -0800
commita800fae22c627e89a09ffc35b95dd072416da14a (patch)
tree7a9c5e4d93d6bc53030685a79c965d2140936257
parent7978bb271bf0e978a095aa088e4bb2bdb1d684f8 (diff)
Ensure serviceCatalog is list when empty, not dict
Fixes bug 1087405. Change-Id: I152c7f418a66ccfe541e26efe75b59bffa6c3849
-rw-r--r--keystone/service.py2
-rw-r--r--tests/test_content_types.py19
2 files changed, 18 insertions, 3 deletions
diff --git a/keystone/service.py b/keystone/service.py
index 11003b11..67167604 100644
--- a/keystone/service.py
+++ b/keystone/service.py
@@ -892,7 +892,7 @@ class TokenController(wsgi.Application):
"""
if not catalog_ref:
- return {}
+ return []
services = {}
for region, region_ref in catalog_ref.iteritems():
diff --git a/tests/test_content_types.py b/tests/test_content_types.py
index 67565207..ba0cdef9 100644
--- a/tests/test_content_types.py
+++ b/tests/test_content_types.py
@@ -363,6 +363,22 @@ class CoreApiTests(object):
expected_status=200)
self.assertValidAuthenticationResponse(r)
+ def test_authenticate_unscoped(self):
+ r = self.public_request(
+ method='POST',
+ path='/v2.0/tokens',
+ body={
+ 'auth': {
+ 'passwordCredentials': {
+ 'username': self.user_foo['name'],
+ 'password': self.user_foo['password'],
+ },
+ },
+ },
+ # TODO(dolph): creating a token should result in a 201 Created
+ expected_status=200)
+ self.assertValidAuthenticationResponse(r)
+
def test_get_tenants_for_token(self):
r = self.public_request(path='/v2.0/tenants',
token=self.get_scoped_token())
@@ -534,7 +550,7 @@ class JsonTestCase(RestfulTestCase, CoreApiTests):
if require_service_catalog:
self.assertIsNotNone(serviceCatalog)
if serviceCatalog is not None:
- self.assertTrue(len(r.body['access']['serviceCatalog']))
+ self.assertTrue(isinstance(serviceCatalog, list))
for service in r.body['access']['serviceCatalog']:
# validate service
self.assertIsNotNone(service.get('name'))
@@ -797,7 +813,6 @@ class XmlTestCase(RestfulTestCase, CoreApiTests):
if require_service_catalog:
self.assertIsNotNone(serviceCatalog)
if serviceCatalog is not None:
- self.assertTrue(len(serviceCatalog.findall(self._tag('service'))))
for service in serviceCatalog.findall(self._tag('service')):
# validate service
self.assertIsNotNone(service.get('name'))