summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-08-26 00:07:36 +0000
committerGerrit Code Review <review@openstack.org>2014-08-26 00:07:36 +0000
commite3a3dff00ff40d2cd161d0cd50b1549ae675b0f2 (patch)
treef67b81285a71c5b87d2f9a2cfd3cae0661886468
parent2cb439e9a6e35496a6fc4d5521c57a5f6992bcb5 (diff)
parent7c954516f52761596aa39c5a7f5ed7b25ec0eacd (diff)
downloadkeystonemiddleware-e3a3dff00ff40d2cd161d0cd50b1549ae675b0f2.tar.gz
Merge "Add a test for re-caching a token"
-rw-r--r--keystonemiddleware/tests/test_auth_token_middleware.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/keystonemiddleware/tests/test_auth_token_middleware.py b/keystonemiddleware/tests/test_auth_token_middleware.py
index d3f3321..bf64995 100644
--- a/keystonemiddleware/tests/test_auth_token_middleware.py
+++ b/keystonemiddleware/tests/test_auth_token_middleware.py
@@ -1224,6 +1224,38 @@ class CommonAuthTokenMiddlewareTest(object):
use_kerberos=use_kerberos,
success=False)
+ def test_caching_token_on_verify(self):
+ # When the token is cached, it's cached again when it's verified.
+ # NOTE(blk-u): This behavior is incorrect and inefficient, see
+ # bug 1289075.
+
+ # The token cache has to be initialized with our cache instance.
+ self.middleware._token_cache._env_cache_name = 'cache'
+ cache = memorycache.Client()
+ self.middleware._token_cache.initialize(env={'cache': cache})
+
+ # Mock cache.set since then the test can verify call_count.
+ orig_cache_set = cache.set
+ cache.set = mock.Mock(side_effect=orig_cache_set)
+
+ token = self.token_dict['signed_token_scoped']
+
+ req = webob.Request.blank('/')
+ req.headers['X-Auth-Token'] = token
+ self.middleware(req.environ, self.start_fake_response)
+ self.assertEqual(200, self.response_status)
+
+ self.assertThat(1, matchers.Equals(cache.set.call_count))
+
+ req = webob.Request.blank('/')
+ req.headers['X-Auth-Token'] = token
+ self.middleware(req.environ, self.start_fake_response)
+ self.assertEqual(200, self.response_status)
+
+ # FIXME(blk-u): This should be 1 since the token shouldn't be cached
+ # again.
+ self.assertThat(2, matchers.Equals(cache.set.call_count))
+
class V2CertDownloadMiddlewareTest(BaseAuthTokenMiddlewareTest,
testresources.ResourcedTestCase):