diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-08-26 00:07:36 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-08-26 00:07:36 +0000 |
commit | e3a3dff00ff40d2cd161d0cd50b1549ae675b0f2 (patch) | |
tree | f67b81285a71c5b87d2f9a2cfd3cae0661886468 | |
parent | 2cb439e9a6e35496a6fc4d5521c57a5f6992bcb5 (diff) | |
parent | 7c954516f52761596aa39c5a7f5ed7b25ec0eacd (diff) | |
download | keystonemiddleware-e3a3dff00ff40d2cd161d0cd50b1549ae675b0f2.tar.gz |
Merge "Add a test for re-caching a token"
-rw-r--r-- | keystonemiddleware/tests/test_auth_token_middleware.py | 32 |
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): |