summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-09-09 13:12:22 +0000
committerGerrit Code Review <review@openstack.org>2014-09-09 13:12:22 +0000
commit50fa6f097e597d32e774ea9e4e43be4219cca5b9 (patch)
tree30c9cedec0498530b317bab491010af986924acb
parent0823039e30dfb46e63f4d1533982b47fa333c940 (diff)
parent0fa062ea984bdcd5469361e4bd4b69a2f62e4915 (diff)
downloadpython-keystoneclient-50fa6f097e597d32e774ea9e4e43be4219cca5b9.tar.gz
Merge "Handle invalidate in identity plugins correctly"
-rw-r--r--keystoneclient/auth/identity/base.py7
-rw-r--r--keystoneclient/tests/auth/test_identity_common.py12
2 files changed, 17 insertions, 2 deletions
diff --git a/keystoneclient/auth/identity/base.py b/keystoneclient/auth/identity/base.py
index 4b02f94..172655d 100644
--- a/keystoneclient/auth/identity/base.py
+++ b/keystoneclient/auth/identity/base.py
@@ -134,8 +134,11 @@ class BaseIdentityPlugin(base.BaseAuthPlugin):
invalidate. This means that it makes sense to try again.
If nothing happens returns False to indicate give up.
"""
- self.auth_ref = None
- return True
+ if self.auth_ref:
+ self.auth_ref = None
+ return True
+
+ return False
def get_endpoint(self, session, service_type=None, interface=None,
region_name=None, service_name=None, version=None,
diff --git a/keystoneclient/tests/auth/test_identity_common.py b/keystoneclient/tests/auth/test_identity_common.py
index b8ff8da..371fd18 100644
--- a/keystoneclient/tests/auth/test_identity_common.py
+++ b/keystoneclient/tests/auth/test_identity_common.py
@@ -209,6 +209,18 @@ class CommonIdentityTests(object):
s = session.Session(auth=a)
self.assertIs(expired_auth_ref, a.get_access(s))
+ def test_invalidate(self):
+ a = self.create_auth_plugin()
+ s = session.Session(auth=a)
+
+ # trigger token fetching
+ s.get_token()
+
+ self.assertTrue(a.auth_ref)
+ self.assertTrue(a.invalidate())
+ self.assertIsNone(a.auth_ref)
+ self.assertFalse(a.invalidate())
+
class V3(CommonIdentityTests, utils.TestCase):