def test_no_boto_config_file_exists(self): self.ini_parser.side_effect = botocore.exceptions.ConfigNotFound( path='foo') provider = credentials.BotoProvider(environ={}, ini_parser=self.ini_parser) creds = provider.load() self.assertIsNone(creds)
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): ini_parser = mock.Mock() ini_parser.return_value = { 'Credentials': { 'aws_access_key_id': 'a', # Missing aws_secret_access_key. } } provider = credentials.BotoProvider(environ={}, ini_parser=ini_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()])
def test_boto_config_file_exists_in_home_dir(self): environ = {} self.ini_parser.return_value = { 'Credentials': { # boto's config file does not support a session token # so we only test for access_key/secret_key. 'aws_access_key_id': 'a', 'aws_secret_access_key': 'b', } } provider = credentials.BotoProvider(environ=environ, ini_parser=self.ini_parser) creds = provider.load() self.assertIsNotNone(creds) self.assertEqual(creds.access_key, 'a') self.assertEqual(creds.secret_key, 'b') self.assertIsNone(creds.token) self.assertEqual(creds.method, 'boto-config')
def test_env_var_set_for_boto_location(self): environ = {'BOTO_CONFIG': 'alternate-config.cfg'} self.ini_parser.return_value = { 'Credentials': { # boto's config file does not support a session token # so we only test for access_key/secret_key. 'aws_access_key_id': 'a', 'aws_secret_access_key': 'b', } } provider = credentials.BotoProvider(environ=environ, ini_parser=self.ini_parser) creds = provider.load() self.assertIsNotNone(creds) self.assertEqual(creds.access_key, 'a') self.assertEqual(creds.secret_key, 'b') self.assertIsNone(creds.token) self.assertEqual(creds.method, 'boto-config') # Assert that the parser was called with the filename specified # in the env var. self.ini_parser.assert_called_with('alternate-config.cfg')