summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-12-01 00:08:44 +0000
committerGerrit Code Review <review@openstack.org>2016-12-01 00:08:44 +0000
commitf7c1d45a04bb2b024a985b8e30245d38f2bf8442 (patch)
tree4fd1d4b182c903ef16ecd3f1e2d600bbe04855b9
parent70934194e18ed9823baa0d344e2543b982f1af73 (diff)
parentb405d71a5f9562414ce6b08f7eb4556f534dd273 (diff)
downloadpython-keystoneclient-f7c1d45a04bb2b024a985b8e30245d38f2bf8442.tar.gz
Merge "Fix missing service_catalog parameter in Client object"3.8.0
-rw-r--r--keystoneclient/httpclient.py5
-rw-r--r--keystoneclient/tests/unit/v2_0/test_client.py8
-rw-r--r--keystoneclient/tests/unit/v3/test_client.py8
3 files changed, 20 insertions, 1 deletions
diff --git a/keystoneclient/httpclient.py b/keystoneclient/httpclient.py
index 9d54769..4d893c3 100644
--- a/keystoneclient/httpclient.py
+++ b/keystoneclient/httpclient.py
@@ -442,7 +442,10 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
@property
def service_catalog(self):
"""Return this client's service catalog."""
- return self.auth_ref.service_catalog
+ try:
+ return self.auth_ref.service_catalog
+ except AttributeError:
+ return None
def has_service_catalog(self):
"""Return True if this client provides a service catalog."""
diff --git a/keystoneclient/tests/unit/v2_0/test_client.py b/keystoneclient/tests/unit/v2_0/test_client.py
index 05cc075..90b6450 100644
--- a/keystoneclient/tests/unit/v2_0/test_client.py
+++ b/keystoneclient/tests/unit/v2_0/test_client.py
@@ -16,6 +16,7 @@ import uuid
from keystoneauth1 import fixture
import six
+from keystoneauth1 import session as auth_session
from keystoneclient.auth import token_endpoint
from keystoneclient import exceptions
from keystoneclient import session
@@ -211,3 +212,10 @@ class KeystoneClientTest(utils.TestCase):
self.assertEqual('identity', cl._adapter.service_type)
self.assertEqual((2, 0), cl._adapter.version)
+
+ def test_empty_service_catalog_param(self):
+ # Client().service_catalog should return None if the client is not
+ # authenticated
+ sess = auth_session.Session()
+ cl = client.Client(session=sess)
+ self.assertEqual(None, cl.service_catalog)
diff --git a/keystoneclient/tests/unit/v3/test_client.py b/keystoneclient/tests/unit/v3/test_client.py
index c401ba6..42004ff 100644
--- a/keystoneclient/tests/unit/v3/test_client.py
+++ b/keystoneclient/tests/unit/v3/test_client.py
@@ -16,6 +16,7 @@ import uuid
import six
+from keystoneauth1 import session as auth_session
from keystoneclient.auth import token_endpoint
from keystoneclient import exceptions
from keystoneclient import session
@@ -261,3 +262,10 @@ class KeystoneClientTest(utils.TestCase):
self.assertEqual('identity', cl._adapter.service_type)
self.assertEqual((3, 0), cl._adapter.version)
+
+ def test_empty_service_catalog_param(self):
+ # Client().service_catalog should return None if the client is not
+ # authenticated
+ sess = auth_session.Session()
+ cl = client.Client(session=sess)
+ self.assertEqual(None, cl.service_catalog)