diff --git a/app/config.py b/app/config.py index 668d02987..0b461e235 100644 --- a/app/config.py +++ b/app/config.py @@ -79,6 +79,15 @@ class Config(object): } +def _default_s3_credentials(bucket_name): + return { + 'bucket': bucket_name, + 'access_key_id': os.environ.get('AWS_ACCESS_KEY_ID'), + 'secret_access_key': os.environ.get('AWS_SECRET_ACCESS_KEY'), + 'region': os.environ.get('AWS_REGION') + } + + class Development(Config): BASIC_AUTH_FORCE = False DEBUG = True @@ -89,24 +98,9 @@ class Development(Config): ASSET_PATH = '/static/' # Buckets - CSV_UPLOAD_BUCKET = { - 'bucket': 'local-notifications-csv-upload', - 'access_key_id': os.environ.get('AWS_ACCESS_KEY_ID'), - 'secret_access_key': os.environ.get('AWS_SECRET_ACCESS_KEY'), - 'region': os.environ.get('AWS_REGION') - } - CONTACT_LIST_BUCKET = { - 'bucket': 'local-contact-list', - 'access_key_id': os.environ.get('AWS_ACCESS_KEY_ID'), - 'secret_access_key': os.environ.get('AWS_SECRET_ACCESS_KEY'), - 'region': os.environ.get('AWS_REGION') - } - LOGO_UPLOAD_BUCKET = { - 'bucket': 'local-public-logos-tools', - 'access_key_id': os.environ.get('AWS_ACCESS_KEY_ID'), - 'secret_access_key': os.environ.get('AWS_SECRET_ACCESS_KEY'), - 'region': os.environ.get('AWS_REGION') - } + CSV_UPLOAD_BUCKET = _default_s3_credentials('local-notifications-csv-upload') + CONTACT_LIST_BUCKET = _default_s3_credentials('local-contact-list') + LOGO_UPLOAD_BUCKET = _default_s3_credentials('local-public-logos-tools') # credential overrides DANGEROUS_SALT = 'dev-notify-salt' @@ -129,6 +123,11 @@ class Test(Development): ANTIVIRUS_ENABLED = True LOGO_CDN_DOMAIN = 'static-logos.test.com' + # Buckets + CSV_UPLOAD_BUCKET = _default_s3_credentials('test-csv-upload') + CONTACT_LIST_BUCKET = _default_s3_credentials('test-contact-list') + LOGO_UPLOAD_BUCKET = _default_s3_credentials('test-logo-upload') + class Production(Config): HEADER_COLOUR = '#005EA5' # $govuk-blue diff --git a/tests/app/main/views/uploads/test_upload_contact_list.py b/tests/app/main/views/uploads/test_upload_contact_list.py index 7f69be12f..1a58c7453 100644 --- a/tests/app/main/views/uploads/test_upload_contact_list.py +++ b/tests/app/main/views/uploads/test_upload_contact_list.py @@ -208,7 +208,7 @@ def test_upload_csv_file_shows_error_banner( mock_upload.assert_called_once_with( filedata='', region='us-west-2', - bucket_name='local-contact-list', + bucket_name='test-contact-list', file_location=f"service-{SERVICE_ONE_ID}-notify/{fake_uuid}.csv", access_key=default_access_key, secret_key=default_secret_key, diff --git a/tests/app/s3_client/test_s3_csv_client.py b/tests/app/s3_client/test_s3_csv_client.py index b2fc04341..4a099d73d 100644 --- a/tests/app/s3_client/test_s3_csv_client.py +++ b/tests/app/s3_client/test_s3_csv_client.py @@ -4,7 +4,7 @@ from app.s3_client.s3_csv_client import set_metadata_on_csv_upload def test_sets_metadata(client_request, mocker): - mocked_s3_object = Mock(bucket_name='local-notifications-csv-upload', key='service-1234-notify/5678.csv') + mocked_s3_object = Mock(bucket_name='test-csv-upload', key='service-1234-notify/5678.csv') mocked_get_s3_object = mocker.patch( 'app.s3_client.s3_csv_client.get_csv_upload', return_value=mocked_s3_object, @@ -14,7 +14,7 @@ def test_sets_metadata(client_request, mocker): mocked_get_s3_object.assert_called_once_with('1234', '5678') mocked_s3_object.copy_from.assert_called_once_with( - CopySource='local-notifications-csv-upload/service-1234-notify/5678.csv', + CopySource='test-csv-upload/service-1234-notify/5678.csv', Metadata={'baz': 'True', 'foo': 'bar'}, MetadataDirective='REPLACE', ServerSideEncryption='AES256',