Merge "Handle invalidate in identity plugins correctly"

This commit is contained in:
Jenkins
2014-09-09 13:12:22 +00:00
committed by Gerrit Code Review
2 changed files with 17 additions and 2 deletions

View File

@@ -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,

View File

@@ -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):