def test_config_file_missing_profile_config(self): # Referring to a profile that's not in the config file # will result in session.config returning an empty dict. profile_name = 'NOT-default' provider = credentials.ConfigProvider('cli.cfg', profile_name, self.parser) creds = provider.load() self.assertIsNone(creds)
def test_config_file_errors_ignored(self): # We should move on to the next provider if the config file # can't be found. self.parser.side_effect = botocore.exceptions.ConfigNotFound( path='cli.cfg') provider = credentials.ConfigProvider('cli.cfg', 'default', self.parser) creds = provider.load() self.assertIsNone(creds)
def test_config_file_exists(self): provider = credentials.ConfigProvider('cli.cfg', 'default', self.parser) creds = provider.load() self.assertIsNotNone(creds) self.assertEqual(creds.access_key, 'a') self.assertEqual(creds.secret_key, 'b') self.assertEqual(creds.token, 'c') self.assertEqual(creds.method, 'config-file')
def test_custom_init(self): resolver = credentials.CredentialResolver( methods=[credentials.BotoProvider(), credentials.ConfigProvider()]) self.assertEqual(resolver.available_methods, [ 'boto', 'config', ]) self.assertEqual(len(resolver.methods), 2)
def test_partial_creds_is_error(self): profile_config = { 'aws_access_key_id': 'a', # Missing aws_secret_access_key } parsed = {'profiles': {'default': profile_config}} parser = mock.Mock() parser.return_value = parsed provider = credentials.ConfigProvider('cli.cfg', 'default', parser) with self.assertRaises(botocore.exceptions.PartialCredentialsError): provider.load()
def setUp(self): super(AlternateCredentialResolverTest, self).setUp() self.environ['AWS_CONFIG_FILE'] = path('aws_config') self.environ['BOTO_CONFIG'] = '' self.session = create_session(session_vars=TESTENVVARS) self.small_resolver = credentials.CredentialResolver( session=self.session, methods=[ credentials.BotoProvider(), credentials.ConfigProvider(session=self.session) ])
def setUp(self): super(CredentialResolverTest, self).setUp() self.environ['AWS_CONFIG_FILE'] = path('aws_config_nocreds') self.environ['BOTO_CONFIG'] = '' self.environ['AWS_ACCESS_KEY_ID'] = 'foo' self.environ['AWS_SECRET_ACCESS_KEY'] = 'bar' self.session = create_session(session_vars=TESTENVVARS) self.default_resolver = credentials.CredentialResolver( session=self.session) self.small_resolver = credentials.CredentialResolver( session=self.session, methods=[credentials.BotoProvider(), credentials.ConfigProvider()])