Merge pull request #2974 from alphagov/make-letter-folder-name-code-readable

Make letter folder name code readable
This commit is contained in:
Leo Hemsted
2020-09-28 13:58:08 +01:00
committed by GitHub
6 changed files with 52 additions and 49 deletions

View File

@@ -62,7 +62,10 @@ def test_get_pdf_for_templated_letter_happy_path(mocker, sample_letter_notificat
letter_branding = create_letter_branding(name=branding_name, filename=logo_filename)
sample_letter_notification.service.letter_branding = letter_branding
mock_celery = mocker.patch('app.celery.letters_pdf_tasks.notify_celery.send_task')
mocker.patch('app.celery.letters_pdf_tasks.get_letter_pdf_filename', return_value='LETTER.PDF')
mock_get_letter_pdf_filename = mocker.patch(
'app.celery.letters_pdf_tasks.get_letter_pdf_filename',
return_value='LETTER.PDF'
)
get_pdf_for_templated_letter(sample_letter_notification.id)
letter_data = {
@@ -87,8 +90,16 @@ def test_get_pdf_for_templated_letter_happy_path(mocker, sample_letter_notificat
queue=QueueNames.SANITISE_LETTERS
)
mock_get_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'
)
def test_get_pdf_for_templated_letter_non_existent_notification(notify_api, mocker, fake_uuid):
def test_get_pdf_for_templated_letter_non_existent_notification(notify_db_session, mocker, fake_uuid):
with pytest.raises(expected_exception=NoResultFound):
get_pdf_for_templated_letter(fake_uuid)

View File

@@ -1,6 +1,7 @@
import pytest
from datetime import datetime
import dateutil
import boto3
from flask import current_app
from freezegun import freeze_time
@@ -139,8 +140,8 @@ def test_get_bucket_name_and_prefix_for_notification_invalid_notification():
])
def test_get_letter_pdf_filename_returns_correct_filename(
notify_api, mocker, crown_flag, expected_crown_text):
sending_date = datetime(2017, 12, 4, 17, 29)
filename = get_letter_pdf_filename(reference='foo', crown=crown_flag, sending_date=sending_date)
created_at = datetime(2017, 12, 4, 17, 29)
filename = get_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)
@@ -151,24 +152,24 @@ def test_get_letter_pdf_filename_returns_correct_filename(
])
def test_get_letter_pdf_filename_returns_correct_postage_for_filename(
notify_api, postage, expected_postage):
sending_date = datetime(2017, 12, 4, 17, 29)
filename = get_letter_pdf_filename(reference='foo', crown=True, sending_date=sending_date, postage=postage)
created_at = datetime(2017, 12, 4, 17, 29)
filename = get_letter_pdf_filename(reference='foo', crown=True, created_at=created_at, postage=postage)
assert filename == '2017-12-04/NOTIFY.FOO.D.{}.C.C.20171204172900.PDF'.format(expected_postage)
def test_get_letter_pdf_filename_returns_correct_filename_for_test_letters(
notify_api, mocker):
sending_date = datetime(2017, 12, 4, 17, 29)
created_at = datetime(2017, 12, 4, 17, 29)
filename = get_letter_pdf_filename(reference='foo', crown='C',
sending_date=sending_date, dont_use_sending_date=True)
created_at=created_at, ignore_folder=True)
assert filename == 'NOTIFY.FOO.D.2.C.C.20171204172900.PDF'
def test_get_letter_pdf_filename_returns_tomorrows_filename(notify_api, mocker):
sending_date = datetime(2017, 12, 4, 17, 31)
filename = get_letter_pdf_filename(reference='foo', crown=True, sending_date=sending_date)
created_at = datetime(2017, 12, 4, 17, 31)
filename = get_letter_pdf_filename(reference='foo', crown=True, created_at=created_at)
assert filename == '2017-12-05/NOTIFY.FOO.D.2.C.C.20171204173100.PDF'
@@ -215,8 +216,8 @@ def test_upload_letter_pdf_to_correct_bucket(
filename = get_letter_pdf_filename(
reference=sample_letter_notification.reference,
crown=sample_letter_notification.service.crown,
sending_date=sample_letter_notification.created_at,
dont_use_sending_date=is_precompiled_letter
created_at=sample_letter_notification.created_at,
ignore_folder=is_precompiled_letter
)
upload_letter_pdf(sample_letter_notification, b'\x00\x01', precompiled=is_precompiled_letter)
@@ -242,8 +243,8 @@ def test_upload_letter_pdf_uses_postage_from_notification(
filename = get_letter_pdf_filename(
reference=letter_notification.reference,
crown=letter_notification.service.crown,
sending_date=letter_notification.created_at,
dont_use_sending_date=False,
created_at=letter_notification.created_at,
ignore_folder=False,
postage=letter_notification.postage
)
@@ -293,7 +294,7 @@ def test_move_failed_pdf_scan_failed(notify_api):
assert filename not in [o.key for o in bucket.objects.all()]
@pytest.mark.parametrize("freeze_date, expected_folder_name",
@pytest.mark.parametrize("timestamp, expected_folder_name",
[("2018-04-01 17:50:00", "2018-04-02/"),
("2018-07-02 16:29:00", "2018-07-02/"),
("2018-07-02 16:30:00", "2018-07-02/"),
@@ -309,17 +310,12 @@ def test_move_failed_pdf_scan_failed(notify_api):
("2018-01-02 23:30:00", "2018-01-03/"),
("2018-01-03 00:30:00", "2018-01-03/"),
])
def test_get_folder_name_in_british_summer_time(notify_api, freeze_date, expected_folder_name):
with freeze_time(freeze_date):
now = datetime.utcnow()
folder_name = get_folder_name(_now=now, dont_use_sending_date=False)
def test_get_folder_name_in_british_summer_time(notify_api, timestamp, expected_folder_name):
timestamp = dateutil.parser.parse(timestamp)
folder_name = get_folder_name(created_at=timestamp)
assert folder_name == expected_folder_name
def test_get_folder_name_returns_empty_string_for_test_letter():
assert '' == get_folder_name(datetime.utcnow(), dont_use_sending_date=True)
@mock_s3
def test_move_sanitised_letter_to_live_pdf_bucket(notify_api, mocker):
filename = 'my_letter.pdf'