def test_insert_after(self): # Sanity check. self.assertEqual(self.small_resolver.available_methods, [ 'boto', 'config', ]) self.small_resolver.insert_after('boto', credentials.EnvProvider()) self.assertEqual(self.small_resolver.available_methods, [ 'boto', 'env', 'config', ]) self.small_resolver.insert_after('config', credentials.OriginalEC2Provider()) self.assertEqual(self.small_resolver.available_methods, [ 'boto', 'env', 'config', 'credentials-file', ]) # Test a failed insert. with self.assertRaises(botocore.exceptions.UnknownCredentialError): self.small_resolver.insert_after( 'foobar', credentials.InstanceMetadataProvider())
def test_partial_creds_is_an_error(self): # If the user provides an access key, they must also # provide a secret key. Not doing so will generate an # error. environ = { 'AWS_ACCESS_KEY_ID': 'foo', # Missing the AWS_SECRET_ACCESS_KEY } provider = credentials.EnvProvider(environ) with self.assertRaises(botocore.exceptions.PartialCredentialsError): provider.load()
def test_envvars_are_found_no_token(self): environ = { 'AWS_ACCESS_KEY_ID': 'foo', 'AWS_SECRET_ACCESS_KEY': 'bar', } provider = credentials.EnvProvider(environ) creds = provider.load() self.assertIsNotNone(creds) self.assertEqual(creds.access_key, 'foo') self.assertEqual(creds.secret_key, 'bar') self.assertEqual(creds.method, 'env')
def test_can_override_partial_env_var_mapping(self): # Only changing the access key mapping. # The other 2 use the default values of # AWS_SECRET_ACCESS_KEY and AWS_SESSION_TOKEN # use our specified env var names. environ = { 'FOO_ACCESS_KEY': 'foo', 'AWS_SECRET_ACCESS_KEY': 'bar', 'AWS_SESSION_TOKEN': 'baz', } provider = credentials.EnvProvider(environ, {'access_key': 'FOO_ACCESS_KEY'}) creds = provider.load() self.assertEqual(creds.access_key, 'foo') self.assertEqual(creds.secret_key, 'bar') self.assertEqual(creds.token, 'baz')
def test_can_override_env_var_mapping(self): # We can change the env var provider to # use our specified env var names. environ = { 'FOO_ACCESS_KEY': 'foo', 'FOO_SECRET_KEY': 'bar', 'FOO_SESSION_TOKEN': 'baz', } mapping = { 'access_key': 'FOO_ACCESS_KEY', 'secret_key': 'FOO_SECRET_KEY', 'token': 'FOO_SESSION_TOKEN', } provider = credentials.EnvProvider(environ, mapping) creds = provider.load() self.assertEqual(creds.access_key, 'foo') self.assertEqual(creds.secret_key, 'bar') self.assertEqual(creds.token, 'baz')
def test_envvars_not_found(self): provider = credentials.EnvProvider(environ={}) creds = provider.load() self.assertIsNone(creds)