def test_choose_timestamp_parser_profile_not_found(self): session = Mock(spec=Session) session.get_scoped_config.side_effect = ProfileNotFound(profile='foo') factory = session.get_component.return_value scalarparse.add_scalar_parsers(session) factory.set_parser_defaults.assert_called_with( timestamp_parser=scalarparse.identity)
def test_choose_invalid_timestamp_formatter(self): session = Mock(spec=Session) session.get_scoped_config.return_value = {'cli_timestamp_format': 'foobar'} session.get_component.return_value with self.assertRaises(ValueError): scalarparse.add_scalar_parsers(session)
def test_scalar_parsers_set(self): session = mock.Mock() scalarparse.add_scalar_parsers(session) session.get_component.assert_called_with('response_parser_factory') factory = session.get_component.return_value factory.set_parser_defaults.assert_called_with( blob_parser=scalarparse.identity, timestamp_parser=scalarparse.identity)
def test_choose_invalid_timestamp_formatter(self): session = Mock(spec=Session) session.get_scoped_config.return_value = { 'cli_timestamp_format': 'foobar' } session.get_component.return_value with self.assertRaises(ValueError): scalarparse.add_scalar_parsers(session)
def test_choose_iso_timestamp_formatter(self): session = Mock(spec=Session) session.get_scoped_config.return_value = {'cli_timestamp_format': 'iso8601'} factory = session.get_component.return_value scalarparse.add_scalar_parsers(session) factory.set_parser_defaults.assert_called_with( timestamp_parser=scalarparse.iso_format)
def test_choose_iso_timestamp_formatter(self): session = Mock(spec=Session) session.get_scoped_config.return_value = { 'cli_timestamp_format': 'iso8601' } factory = session.get_component.return_value scalarparse.add_scalar_parsers(session) factory.set_parser_defaults.assert_called_with( timestamp_parser=scalarparse.iso_format)
def test_scalar_parsers_set(self): session = Mock() session.get_scoped_config.return_value = {'cli_timestamp_format': 'none'} scalarparse.add_scalar_parsers(session) session.get_component.assert_called_with('response_parser_factory') factory = session.get_component.return_value expected = [call(blob_parser=scalarparse.identity), call(timestamp_parser=scalarparse.identity)] self.assertEqual(factory.set_parser_defaults.mock_calls, expected)
def test_scalar_parsers_set(self): session = Mock() session.get_scoped_config.return_value = { 'cli_timestamp_format': 'none' } scalarparse.add_scalar_parsers(session) session.get_component.assert_called_with('response_parser_factory') factory = session.get_component.return_value expected = [ call(blob_parser=scalarparse.identity), call(timestamp_parser=scalarparse.identity) ] self.assertEqual(factory.set_parser_defaults.mock_calls, expected)
import botocore.credentials session = botocore.session.get_session() if hasattr(botocore.credentials, 'JSONFileCache'): cli_cache = os.path.join(os.path.expanduser('~'), '.aws/cli/cache') try: session.get_component('credential_provider').get_provider('assume-role').cache = botocore.credentials.JSONFileCache(cli_cache) except botocore.exceptions.ProfileNotFound as e: sys.exit(e) else: # workaround old awscli without https://github.com/boto/botocore/pull/1157 from awscli.customizations.assumerole import inject_assume_role_provider_cache from awscli.customizations.scalarparse import add_scalar_parsers inject_assume_role_provider_cache(session) add_scalar_parsers(session) try: credentials = session.get_credentials() if credentials is None: sys.exit('Unable to locate AWS credentials.') frozen_credentials = credentials.get_frozen_credentials() except KeyboardInterrupt as e: sys.exit(e) except botocore.exceptions.ParamValidationError as e: sys.exit(e) except botocore.exceptions.ProfileNotFound as e: sys.exit(e) except botocore.exceptions.ClientError as e: sys.exit(e)