Merge pull request #3183 from alphagov/remove-crown-letter-filename

Remove non/crown indicator in letter filenames
This commit is contained in:
Ben Thorner
2021-03-24 13:06:58 +00:00
committed by GitHub
7 changed files with 48 additions and 69 deletions

View File

@@ -98,7 +98,6 @@ def test_get_pdf_for_templated_letter_happy_path(mocker, sample_letter_notificat
mock_generate_letter_pdf_filename.assert_called_once_with(
reference=sample_letter_notification.reference,
crown=True,
created_at=sample_letter_notification.created_at,
ignore_folder=False,
postage='second'
@@ -176,9 +175,9 @@ def test_get_key_and_size_of_letters_to_be_sent_to_print(notify_api, mocker, sam
pdf_bucket = current_app.config['LETTERS_PDF_BUCKET_NAME']
s3 = boto3.client('s3', region_name='eu-west-1')
s3.create_bucket(Bucket=pdf_bucket, CreateBucketConfiguration={'LocationConstraint': 'eu-west-1'})
s3.put_object(Bucket=pdf_bucket, Key='2020-02-17/NOTIFY.REF0.D.2.C.C.20200217160000.PDF', Body=b'1'),
s3.put_object(Bucket=pdf_bucket, Key='2020-02-17/NOTIFY.REF1.D.2.C.C.20200217150000.PDF', Body=b'22'),
s3.put_object(Bucket=pdf_bucket, Key='2020-02-16/NOTIFY.REF2.D.2.C.C.20200215180000.PDF', Body=b'333'),
s3.put_object(Bucket=pdf_bucket, Key='2020-02-17/NOTIFY.REF0.D.2.C.20200217160000.PDF', Body=b'1'),
s3.put_object(Bucket=pdf_bucket, Key='2020-02-17/NOTIFY.REF1.D.2.C.20200217150000.PDF', Body=b'22'),
s3.put_object(Bucket=pdf_bucket, Key='2020-02-16/NOTIFY.REF2.D.2.C.20200215180000.PDF', Body=b'333'),
# second class
create_notification(
@@ -235,17 +234,17 @@ def test_get_key_and_size_of_letters_to_be_sent_to_print(notify_api, mocker, sam
assert results == [
{
'Key': '2020-02-16/NOTIFY.REF2.D.2.C.C.20200215180000.PDF',
'Key': '2020-02-16/NOTIFY.REF2.D.2.C.20200215180000.PDF',
'Size': 3,
'ServiceId': str(sample_letter_template.service_id)
},
{
'Key': '2020-02-17/NOTIFY.REF1.D.2.C.C.20200217150000.PDF',
'Key': '2020-02-17/NOTIFY.REF1.D.2.C.20200217150000.PDF',
'Size': 2,
'ServiceId': str(sample_letter_template.service_id)
},
{
'Key': '2020-02-17/NOTIFY.REF0.D.2.C.C.20200217160000.PDF',
'Key': '2020-02-17/NOTIFY.REF0.D.2.C.20200217160000.PDF',
'Size': 1,
'ServiceId': str(sample_letter_template.service_id)
},
@@ -260,7 +259,7 @@ def test_get_key_and_size_of_letters_to_be_sent_to_print_handles_file_not_found(
pdf_bucket = current_app.config['LETTERS_PDF_BUCKET_NAME']
s3 = boto3.client('s3', region_name='eu-west-1')
s3.create_bucket(Bucket=pdf_bucket, CreateBucketConfiguration={'LocationConstraint': 'eu-west-1'})
s3.put_object(Bucket=pdf_bucket, Key='2020-02-17/NOTIFY.REF1.D.2.C.C.20200217150000.PDF', Body=b'12'),
s3.put_object(Bucket=pdf_bucket, Key='2020-02-17/NOTIFY.REF1.D.2.C.20200217150000.PDF', Body=b'12'),
# no object for ref1
create_notification(
@@ -282,7 +281,7 @@ def test_get_key_and_size_of_letters_to_be_sent_to_print_handles_file_not_found(
)
assert results == [{
'Key': '2020-02-17/NOTIFY.REF1.D.2.C.C.20200217150000.PDF',
'Key': '2020-02-17/NOTIFY.REF1.D.2.C.20200217150000.PDF',
'Size': 2,
'ServiceId': str(sample_letter_template.service_id)}
]
@@ -362,13 +361,13 @@ def test_collate_letter_pdfs_to_be_sent(
)
filenames = [
'2020-02-17/NOTIFY.FIRST_CLASS.D.1.C.C.20200217140000.PDF',
'2020-02-16/NOTIFY.REF2.D.2.C.C.20200215180000.PDF',
'2020-02-17/NOTIFY.REF1.D.2.C.C.20200217150000.PDF',
'2020-02-17/NOTIFY.REF0.D.2.C.C.20200217160000.PDF',
'2020-02-15/NOTIFY.INTERNATIONAL.D.E.C.C.20200214180000.PDF',
'2020-02-14/NOTIFY.INTERNATIONAL.D.N.C.C.20200213180000.PDF',
'2020-02-17/NOTIFY.ANOTHER_SERVICE.D.2.C.C.20200217160000.PDF'
'2020-02-17/NOTIFY.FIRST_CLASS.D.1.C.20200217140000.PDF',
'2020-02-16/NOTIFY.REF2.D.2.C.20200215180000.PDF',
'2020-02-17/NOTIFY.REF1.D.2.C.20200217150000.PDF',
'2020-02-17/NOTIFY.REF0.D.2.C.20200217160000.PDF',
'2020-02-15/NOTIFY.INTERNATIONAL.D.E.C.20200214180000.PDF',
'2020-02-14/NOTIFY.INTERNATIONAL.D.N.C.20200213180000.PDF',
'2020-02-17/NOTIFY.ANOTHER_SERVICE.D.2.C.20200217160000.PDF'
]
for filename in filenames:
@@ -392,9 +391,9 @@ def test_collate_letter_pdfs_to_be_sent(
name='zip-and-send-letter-pdfs',
kwargs={
'filenames_to_zip': [
'2020-02-17/NOTIFY.FIRST_CLASS.D.1.C.C.20200217140000.PDF'
'2020-02-17/NOTIFY.FIRST_CLASS.D.1.C.20200217140000.PDF'
],
'upload_filename': f'NOTIFY.2020-02-17.1.001.kHh01fdUxT9iEIYUt5Wx.{letter_template_1.service_id}.ZIP'
'upload_filename': f'NOTIFY.2020-02-17.1.001.sO6RKzPyNrkxrR8OLonl.{letter_template_1.service_id}.ZIP'
},
queue='process-ftp-tasks',
compression='zlib'
@@ -402,8 +401,8 @@ def test_collate_letter_pdfs_to_be_sent(
assert mock_celery.call_args_list[1] == call(
name='zip-and-send-letter-pdfs',
kwargs={
'filenames_to_zip': ['2020-02-17/NOTIFY.ANOTHER_SERVICE.D.2.C.C.20200217160000.PDF'],
'upload_filename': f'NOTIFY.2020-02-17.2.001.MezXnKP3IvNZEoMsSlVo.{service_2.id}.ZIP'
'filenames_to_zip': ['2020-02-17/NOTIFY.ANOTHER_SERVICE.D.2.C.20200217160000.PDF'],
'upload_filename': f'NOTIFY.2020-02-17.2.001.bGS-FKKV0QHcOUZgacEu.{service_2.id}.ZIP'
},
queue='process-ftp-tasks',
compression='zlib'
@@ -412,10 +411,10 @@ def test_collate_letter_pdfs_to_be_sent(
name='zip-and-send-letter-pdfs',
kwargs={
'filenames_to_zip': [
'2020-02-16/NOTIFY.REF2.D.2.C.C.20200215180000.PDF',
'2020-02-17/NOTIFY.REF1.D.2.C.C.20200217150000.PDF'
'2020-02-16/NOTIFY.REF2.D.2.C.20200215180000.PDF',
'2020-02-17/NOTIFY.REF1.D.2.C.20200217150000.PDF'
],
'upload_filename': f'NOTIFY.2020-02-17.2.002.k3x_WqC5KhB6e2DWv9Ma.{letter_template_1.service_id}.ZIP'
'upload_filename': f'NOTIFY.2020-02-17.2.002.AmmswUYqPToXwlSZiFyK.{letter_template_1.service_id}.ZIP'
},
queue='process-ftp-tasks',
compression='zlib'
@@ -424,9 +423,9 @@ def test_collate_letter_pdfs_to_be_sent(
name='zip-and-send-letter-pdfs',
kwargs={
'filenames_to_zip': [
'2020-02-17/NOTIFY.REF0.D.2.C.C.20200217160000.PDF'
'2020-02-17/NOTIFY.REF0.D.2.C.20200217160000.PDF'
],
'upload_filename': f'NOTIFY.2020-02-17.2.003.J85cUw-FWlKuAIOcwdLS.{letter_template_1.service_id}.ZIP'
'upload_filename': f'NOTIFY.2020-02-17.2.003.36PwhyI9lFKjzbPiWxwv.{letter_template_1.service_id}.ZIP'
},
queue='process-ftp-tasks',
compression='zlib'
@@ -435,9 +434,9 @@ def test_collate_letter_pdfs_to_be_sent(
name='zip-and-send-letter-pdfs',
kwargs={
'filenames_to_zip': [
'2020-02-15/NOTIFY.INTERNATIONAL.D.E.C.C.20200214180000.PDF'
'2020-02-15/NOTIFY.INTERNATIONAL.D.E.C.20200214180000.PDF'
],
'upload_filename': f'NOTIFY.2020-02-17.E.001.4YajCZzgzIl7zf8bjWK2.{letter_template_1.service_id}.ZIP'
'upload_filename': f'NOTIFY.2020-02-17.E.001.lDBwqhnG__URJeGz3tH1.{letter_template_1.service_id}.ZIP'
},
queue='process-ftp-tasks',
compression='zlib'
@@ -446,9 +445,9 @@ def test_collate_letter_pdfs_to_be_sent(
name='zip-and-send-letter-pdfs',
kwargs={
'filenames_to_zip': [
'2020-02-14/NOTIFY.INTERNATIONAL.D.N.C.C.20200213180000.PDF',
'2020-02-14/NOTIFY.INTERNATIONAL.D.N.C.20200213180000.PDF',
],
'upload_filename': f'NOTIFY.2020-02-17.N.001.eSvP8Ph6EBKhh3k7BSA2.{letter_template_1.service_id}.ZIP'
'upload_filename': f'NOTIFY.2020-02-17.N.001.ZE7k_jm7Bg5sYwLswkr4.{letter_template_1.service_id}.ZIP'
},
queue='process-ftp-tasks',
compression='zlib'
@@ -727,42 +726,42 @@ def test_sanitise_letter_puts_letter_into_technical_failure_if_max_retries_excee
'LETTERS_PDF_BUCKET_NAME',
NOTIFICATION_CREATED,
'first',
'2018-07-01/NOTIFY.FOO.D.1.C.C.20180701120000.PDF'
'2018-07-01/NOTIFY.FOO.D.1.C.20180701120000.PDF'
),
(
KEY_TYPE_NORMAL,
'LETTERS_PDF_BUCKET_NAME',
NOTIFICATION_CREATED,
'second',
'2018-07-01/NOTIFY.FOO.D.2.C.C.20180701120000.PDF'
'2018-07-01/NOTIFY.FOO.D.2.C.20180701120000.PDF'
),
(
KEY_TYPE_NORMAL,
'LETTERS_PDF_BUCKET_NAME',
NOTIFICATION_CREATED,
'europe',
'2018-07-01/NOTIFY.FOO.D.E.C.C.20180701120000.PDF'
'2018-07-01/NOTIFY.FOO.D.E.C.20180701120000.PDF'
),
(
KEY_TYPE_NORMAL,
'LETTERS_PDF_BUCKET_NAME',
NOTIFICATION_CREATED,
'rest-of-world',
'2018-07-01/NOTIFY.FOO.D.N.C.C.20180701120000.PDF'
'2018-07-01/NOTIFY.FOO.D.N.C.20180701120000.PDF'
),
(
KEY_TYPE_TEST,
'TEST_LETTERS_BUCKET_NAME',
NOTIFICATION_DELIVERED,
'second',
'NOTIFY.FOO.D.2.C.C.20180701120000.PDF',
'NOTIFY.FOO.D.2.C.20180701120000.PDF',
),
(
KEY_TYPE_TEST,
'TEST_LETTERS_BUCKET_NAME',
NOTIFICATION_DELIVERED,
'first',
'NOTIFY.FOO.D.1.C.C.20180701120000.PDF',
'NOTIFY.FOO.D.1.C.20180701120000.PDF',
),
])
def test_process_sanitised_letter_with_valid_letter(
@@ -774,7 +773,7 @@ def test_process_sanitised_letter_with_valid_letter(
destination_filename,
):
# We save the letter as if it's 2nd class initially, and the task changes the filename to have the correct postage
filename = 'NOTIFY.FOO.D.2.C.C.20180701120000.PDF'
filename = 'NOTIFY.FOO.D.2.C.20180701120000.PDF'
scan_bucket_name = current_app.config['LETTERS_SCAN_BUCKET_NAME']
template_preview_bucket_name = current_app.config['LETTER_SANITISE_BUCKET_NAME']

View File

@@ -144,7 +144,7 @@ def test_delete_notifications_deletes_letters_from_s3(sample_letter_template, mo
eight_days_ago = datetime.utcnow() - timedelta(days=8)
create_notification(template=sample_letter_template, status='delivered',
reference='LETTER_REF', created_at=eight_days_ago, sent_at=eight_days_ago)
filename = "{}/NOTIFY.LETTER_REF.D.2.C.C.{}.PDF".format(
filename = "{}/NOTIFY.LETTER_REF.D.2.C.{}.PDF".format(
str(eight_days_ago.date()),
eight_days_ago.strftime('%Y%m%d%H%M%S')
)
@@ -268,7 +268,7 @@ def test_delete_notifications_deletes_letters_sent_and_in_final_state_from_table
assert Notification.query.count() == 1
assert NotificationHistory.query.count() == 0
filename = "{}/NOTIFY.LETTER_REF.D.2.C.C.{}.PDF".format(
filename = "{}/NOTIFY.LETTER_REF.D.2.C.{}.PDF".format(
str(eight_days_ago.date()),
eight_days_ago.strftime('%Y%m%d%H%M%S')
)

View File

@@ -171,18 +171,6 @@ def test_get_bucket_name_and_prefix_for_notification_invalid_notification():
get_bucket_name_and_prefix_for_notification(None)
@pytest.mark.parametrize('crown_flag,expected_crown_text', [
(True, 'C'),
(False, 'N'),
])
def test_generate_letter_pdf_filename_returns_correct_filename(
notify_api, mocker, crown_flag, expected_crown_text):
created_at = datetime(2017, 12, 4, 17, 29)
filename = generate_letter_pdf_filename(reference='foo', crown=crown_flag, created_at=created_at)
assert filename == '2017-12-04/NOTIFY.FOO.D.2.C.{}.20171204172900.PDF'.format(expected_crown_text)
@pytest.mark.parametrize('postage,expected_postage', [
('second', 2),
('first', 1),
@@ -190,9 +178,9 @@ def test_generate_letter_pdf_filename_returns_correct_filename(
def test_generate_letter_pdf_filename_returns_correct_postage_for_filename(
notify_api, postage, expected_postage):
created_at = datetime(2017, 12, 4, 17, 29)
filename = generate_letter_pdf_filename(reference='foo', crown=True, created_at=created_at, postage=postage)
filename = generate_letter_pdf_filename(reference='foo', created_at=created_at, postage=postage)
assert filename == '2017-12-04/NOTIFY.FOO.D.{}.C.C.20171204172900.PDF'.format(expected_postage)
assert filename == '2017-12-04/NOTIFY.FOO.D.{}.C.20171204172900.PDF'.format(expected_postage)
def test_generate_letter_pdf_filename_returns_correct_filename_for_test_letters(
@@ -200,25 +188,24 @@ def test_generate_letter_pdf_filename_returns_correct_filename_for_test_letters(
created_at = datetime(2017, 12, 4, 17, 29)
filename = generate_letter_pdf_filename(
reference='foo',
crown='C',
created_at=created_at,
ignore_folder=True
)
assert filename == 'NOTIFY.FOO.D.2.C.C.20171204172900.PDF'
assert filename == 'NOTIFY.FOO.D.2.C.20171204172900.PDF'
def test_generate_letter_pdf_filename_returns_tomorrows_filename(notify_api, mocker):
created_at = datetime(2017, 12, 4, 17, 31)
filename = generate_letter_pdf_filename(reference='foo', crown=True, created_at=created_at)
filename = generate_letter_pdf_filename(reference='foo', created_at=created_at)
assert filename == '2017-12-05/NOTIFY.FOO.D.2.C.C.20171204173100.PDF'
assert filename == '2017-12-05/NOTIFY.FOO.D.2.C.20171204173100.PDF'
@mock_s3
@pytest.mark.parametrize('bucket_config_name,filename_format', [
('TEST_LETTERS_BUCKET_NAME', 'NOTIFY.FOO.D.2.C.C.%Y%m%d%H%M%S.PDF'),
('LETTERS_PDF_BUCKET_NAME', '%Y-%m-%d/NOTIFY.FOO.D.2.C.C.%Y%m%d%H%M%S.PDF')
('TEST_LETTERS_BUCKET_NAME', 'NOTIFY.FOO.D.2.C.%Y%m%d%H%M%S.PDF'),
('LETTERS_PDF_BUCKET_NAME', '%Y-%m-%d/NOTIFY.FOO.D.2.C.%Y%m%d%H%M%S.PDF')
])
@freeze_time(FROZEN_DATE_TIME)
def test_get_letter_pdf_gets_pdf_from_correct_bucket(
@@ -259,7 +246,6 @@ def test_upload_letter_pdf_to_correct_bucket(
filename = generate_letter_pdf_filename(
reference=sample_letter_notification.reference,
crown=sample_letter_notification.service.crown,
created_at=sample_letter_notification.created_at,
ignore_folder=is_precompiled_letter
)
@@ -286,7 +272,6 @@ def test_upload_letter_pdf_uses_postage_from_notification(
filename = generate_letter_pdf_filename(
reference=letter_notification.reference,
crown=letter_notification.service.crown,
created_at=letter_notification.created_at,
ignore_folder=False,
postage=letter_notification.postage

View File

@@ -118,5 +118,5 @@ def test_send_pdf_letter_notification_creates_notification_and_moves_letter(
s3_mock.assert_called_once_with(
'service-{}/{}.pdf'.format(sample_service_full_permissions.id, file_id),
'2019-08-02/NOTIFY.{}.D.2.C.C.20190802110000.PDF'.format(notification.reference)
'2019-08-02/NOTIFY.{}.D.2.C.20190802110000.PDF'.format(notification.reference)
)