diff options
author | Guang Yee <guang.yee@hp.com> | 2013-07-18 08:23:52 -0700 |
---|---|---|
committer | Guang Yee <guang.yee@hp.com> | 2013-07-18 09:28:42 -0700 |
commit | e63501d305c67b898821ad65ec744adf6851236a (patch) | |
tree | a9d3430185972de6f26ff1cef76525f8fc530fa1 /tests/test_token_provider.py | |
parent | c42533fc00210a16d6eb74909adaeddb9bc4fbf6 (diff) | |
download | keystone-e63501d305c67b898821ad65ec744adf6851236a.tar.gz keystone-e63501d305c67b898821ad65ec744adf6851236a.tar.xz keystone-e63501d305c67b898821ad65ec744adf6851236a.zip |
Support token_format for backward compatibility
The provider property in the [token] section will be unset by default. If
provider is not set, we will use token_format in the [signing] section to
determine to provider. If provider is set, it must agree with the token_format.
fixed bug 1202651
Change-Id: I15ff67490acbbacc9eefc7eee253400475704b04
Diffstat (limited to 'tests/test_token_provider.py')
-rw-r--r-- | tests/test_token_provider.py | 53 |
1 files changed, 46 insertions, 7 deletions
diff --git a/tests/test_token_provider.py b/tests/test_token_provider.py index 7db07126..31205073 100644 --- a/tests/test_token_provider.py +++ b/tests/test_token_provider.py @@ -16,6 +16,7 @@ import uuid +from keystone import exception from keystone import test from keystone import token @@ -360,37 +361,75 @@ class TestTokenProvider(test.TestCase): def test_token_format_provider_mismatch(self): self.opt_in_group('signing', token_format='UUID') self.opt_in_group('token', - provider='keystone.token.providers.pki.Provider') + provider=token.provider.PKI_PROVIDER) try: token.provider.Manager() raise Exception( 'expecting ValueError on token provider misconfiguration') - except ValueError: + except exception.UnexpectedError: pass self.opt_in_group('signing', token_format='PKI') self.opt_in_group('token', - provider='keystone.token.providers.uuid.Provider') + provider=token.provider.UUID_PROVIDER) try: token.provider.Manager() raise Exception( 'expecting ValueError on token provider misconfiguration') - except ValueError: + except exception.UnexpectedError: pass # should be OK as token_format and provider aligns self.opt_in_group('signing', token_format='PKI') self.opt_in_group('token', - provider='keystone.token.providers.pki.Provider') + provider=token.provider.PKI_PROVIDER) token.provider.Manager() self.opt_in_group('signing', token_format='UUID') self.opt_in_group('token', - provider='keystone.token.providers.uuid.Provider') + provider=token.provider.UUID_PROVIDER) token.provider.Manager() # custom provider should be OK too self.opt_in_group('signing', token_format='CUSTOM') self.opt_in_group('token', - provider='keystone.token.providers.pki.Provider') + provider=token.provider.PKI_PROVIDER) token.provider.Manager() + + def test_default_token_format(self): + self.assertEqual(token.provider.Manager.check_and_get_token_provider(), + token.provider.PKI_PROVIDER) + + def test_uuid_token_format_and_no_provider(self): + self.opt_in_group('signing', token_format='UUID') + self.assertEqual(token.provider.Manager.check_and_get_token_provider(), + token.provider.UUID_PROVIDER) + + def test_unsupported_token_format(self): + self.opt_in_group('signing', token_format='CUSTOM') + self.assertRaises(exception.UnexpectedError, + token.provider.Manager.check_and_get_token_provider) + + def test_provider_override_token_format(self): + self.opt_in_group('token', + provider='keystone.token.providers.pki.Test') + self.assertRaises(exception.UnexpectedError, + token.provider.Manager.check_and_get_token_provider) + + self.opt_in_group('signing', token_format='UUID') + self.opt_in_group('token', + provider=token.provider.UUID_PROVIDER) + self.assertEqual(token.provider.Manager.check_and_get_token_provider(), + token.provider.UUID_PROVIDER) + + self.opt_in_group('signing', token_format='PKI') + self.opt_in_group('token', + provider=token.provider.PKI_PROVIDER) + self.assertEqual(token.provider.Manager.check_and_get_token_provider(), + token.provider.PKI_PROVIDER) + + self.opt_in_group('signing', token_format='CUSTOM') + self.opt_in_group('token', + provider='my.package.MyProvider') + self.assertEqual(token.provider.Manager.check_and_get_token_provider(), + 'my.package.MyProvider') |