def create_s3_commit_store_from_config(config, repository_name): SECTION_NAME = 'General' BUCKET_KEY_NAME = 'bucket' KEY_PREFIX_NAME = 'prefix' REPOSITORY_TO_KEY_PREFIX_MAP = { 'WAL': 'wals/', 'Snapshot': 'snapshots/', } try: bucket_name = config.get(SECTION_NAME, BUCKET_KEY_NAME) except NoOptionError: raise MissingS3Configuration('A "{0}" value must be provided in the' ' "{1}" section when using the S3 driver.'.format(BUCKET_KEY_NAME, SECTION_NAME)) common_prefix = '' if config.has_option(SECTION_NAME, KEY_PREFIX_NAME): common_prefix = config.get(SECTION_NAME, KEY_PREFIX_NAME) key_prefix = ''.join([common_prefix, REPOSITORY_TO_KEY_PREFIX_MAP[repository_name]]) access_key, secret_key = get_aws_credentials(config) conn = get_s3_connection(access_key, secret_key) bucket = conn.create_bucket(bucket_name) return S3CommitStorage(bucket, key_prefix)
def test_will_return_s3_connection(self, mock_connect_s3): get_s3_connection('access_key', 'secret_key') mock_connect_s3.assert_called_with('access_key', 'secret_key')