mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-29 04:09:07 -04:00
Merge pull request #2047 from alphagov/store-s3-metadata
Store info about files as S3 metadata
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from collections import namedtuple
|
||||
from unittest.mock import call
|
||||
from unittest.mock import Mock, call
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -10,6 +10,7 @@ from app.main.s3_client import (
|
||||
delete_temp_files_created_by,
|
||||
get_temp_truncated_filename,
|
||||
persist_logo,
|
||||
set_metadata_on_csv_upload,
|
||||
upload_logo,
|
||||
)
|
||||
|
||||
@@ -94,3 +95,21 @@ def test_does_not_delete_non_temp_file(client, mocker, fake_uuid):
|
||||
|
||||
assert mocked_delete_s3_object.called_with_args(filename)
|
||||
assert str(error.value) == 'Not a temp file: {}'.format(filename)
|
||||
|
||||
|
||||
def test_sets_metadata(client, mocker):
|
||||
mocked_s3_object = Mock()
|
||||
mocked_get_s3_object = mocker.patch(
|
||||
'app.main.s3_client.get_csv_upload',
|
||||
return_value=mocked_s3_object,
|
||||
)
|
||||
|
||||
set_metadata_on_csv_upload('1234', '5678', foo='bar', baz=True)
|
||||
|
||||
mocked_get_s3_object.assert_called_once_with('1234', '5678')
|
||||
mocked_s3_object.copy_from.assert_called_once_with(
|
||||
CopySource='test-notifications-csv-upload/service-1234-notify/5678.csv',
|
||||
Metadata={'baz': 'True', 'foo': 'bar'},
|
||||
MetadataDirective='REPLACE',
|
||||
ServerSideEncryption='AES256',
|
||||
)
|
||||
|
||||
@@ -565,6 +565,7 @@ def test_upload_valid_csv_shows_preview_and_table(
|
||||
mock_get_service_template_with_placeholders,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
mock_s3_set_metadata,
|
||||
fake_uuid,
|
||||
extra_args,
|
||||
expected_link_in_first_row,
|
||||
@@ -592,6 +593,14 @@ def test_upload_valid_csv_shows_preview_and_table(
|
||||
**extra_args
|
||||
)
|
||||
|
||||
mock_s3_set_metadata.assert_called_once_with(
|
||||
SERVICE_ONE_ID,
|
||||
fake_uuid,
|
||||
notification_count=3,
|
||||
template_id=fake_uuid,
|
||||
valid=True,
|
||||
)
|
||||
|
||||
assert page.h1.text.strip() == 'Preview of Two week reminder'
|
||||
assert page.select_one('.sms-message-recipient').text.strip() == expected_recipient
|
||||
assert page.select_one('.sms-message-wrapper').text.strip() == expected_message
|
||||
@@ -702,6 +711,7 @@ def test_404_for_previewing_a_row_out_of_range(
|
||||
mock_get_service_template_with_placeholders,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
mock_s3_set_metadata,
|
||||
fake_uuid,
|
||||
row_index,
|
||||
expected_status,
|
||||
@@ -1464,6 +1474,7 @@ def test_upload_csvfile_with_valid_phone_shows_all_numbers(
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
mock_get_live_service,
|
||||
mock_s3_set_metadata,
|
||||
service_one,
|
||||
fake_uuid,
|
||||
mock_s3_upload,
|
||||
@@ -1489,6 +1500,14 @@ def test_upload_csvfile_with_valid_phone_shows_all_numbers(
|
||||
assert sess['file_uploads'][fake_uuid]['template_id'] == fake_uuid
|
||||
assert sess['file_uploads'][fake_uuid]['valid'] is True
|
||||
|
||||
mock_s3_set_metadata.assert_called_once_with(
|
||||
SERVICE_ONE_ID,
|
||||
fake_uuid,
|
||||
notification_count=53,
|
||||
template_id=fake_uuid,
|
||||
valid=True,
|
||||
)
|
||||
|
||||
content = response.get_data(as_text=True)
|
||||
assert response.status_code == 200
|
||||
assert '07700 900701' in content
|
||||
@@ -1543,6 +1562,7 @@ def test_test_message_can_only_be_sent_now(
|
||||
mock_s3_download,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
mock_s3_set_metadata,
|
||||
fake_uuid
|
||||
):
|
||||
with logged_in_client.session_transaction() as session:
|
||||
@@ -1957,6 +1977,7 @@ def test_check_messages_back_link(
|
||||
mock_has_permissions,
|
||||
mock_get_detailed_service_for_today,
|
||||
mock_s3_download,
|
||||
mock_s3_set_metadata,
|
||||
fake_uuid,
|
||||
mocker,
|
||||
template_mock,
|
||||
@@ -2138,6 +2159,7 @@ def test_check_messages_shows_trial_mode_error_for_letters(
|
||||
mock_has_permissions,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
mock_s3_set_metadata,
|
||||
fake_uuid,
|
||||
mocker,
|
||||
service_mock,
|
||||
@@ -2265,6 +2287,7 @@ def test_generate_test_letter_doesnt_block_in_trial_mode(
|
||||
fake_uuid,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
mock_s3_set_metadata,
|
||||
):
|
||||
|
||||
mocker.patch('app.main.views.send.s3download', return_value="""
|
||||
@@ -2712,6 +2735,7 @@ def test_reply_to_is_previewed_if_chosen(
|
||||
mocker,
|
||||
mock_get_service_email_template,
|
||||
mock_s3_download,
|
||||
mock_s3_set_metadata,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
get_default_reply_to_email_address,
|
||||
@@ -2760,6 +2784,7 @@ def test_sms_sender_is_previewed(
|
||||
mocker,
|
||||
mock_get_service_template,
|
||||
mock_s3_download,
|
||||
mock_s3_set_metadata,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
get_default_sms_sender,
|
||||
|
||||
Reference in New Issue
Block a user