mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-01 07:35:34 -05:00
rename letter get_folder_name args
`_now`? why would we ever use a different _now? instead say created_at, because that's what it'll always be set to, even if we're replaying old letters. We always set the folder name to when the letter was created_at, or we might not know where to look to find it. `dont_use_sending_date` doesn't really tell us what might happen if we don't use it - the answer is we return an empty string. we ignore the folder entirely. so lets call it that. Also, remove use of freeze_gun in the tests, to prove that we don't use the current time in any calculations. Also add an assert to a mock in the get_pdf_for_templated_letter test, because we were mocking but not asserting before, so the tests didn't fail when the function signature changed.
This commit is contained in:
@@ -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,6 +90,14 @@ 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,
|
||||
sending_date=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):
|
||||
with pytest.raises(expected_exception=NoResultFound):
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import pytest
|
||||
from datetime import datetime
|
||||
|
||||
import dateutil
|
||||
import boto3
|
||||
from flask import current_app
|
||||
from freezegun import freeze_time
|
||||
@@ -161,7 +162,7 @@ def test_get_letter_pdf_filename_returns_correct_filename_for_test_letters(
|
||||
notify_api, mocker):
|
||||
sending_date = datetime(2017, 12, 4, 17, 29)
|
||||
filename = get_letter_pdf_filename(reference='foo', crown='C',
|
||||
sending_date=sending_date, dont_use_sending_date=True)
|
||||
sending_date=sending_date, ignore_folder=True)
|
||||
|
||||
assert filename == 'NOTIFY.FOO.D.2.C.C.20171204172900.PDF'
|
||||
|
||||
@@ -216,7 +217,7 @@ def test_upload_letter_pdf_to_correct_bucket(
|
||||
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
|
||||
ignore_folder=is_precompiled_letter
|
||||
)
|
||||
|
||||
upload_letter_pdf(sample_letter_notification, b'\x00\x01', precompiled=is_precompiled_letter)
|
||||
@@ -243,7 +244,7 @@ def test_upload_letter_pdf_uses_postage_from_notification(
|
||||
reference=letter_notification.reference,
|
||||
crown=letter_notification.service.crown,
|
||||
sending_date=letter_notification.created_at,
|
||||
dont_use_sending_date=False,
|
||||
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,15 +310,14 @@ 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, ignore_folder=False)
|
||||
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)
|
||||
assert '' == get_folder_name(datetime.utcnow(), ignore_folder=True)
|
||||
|
||||
|
||||
@mock_s3
|
||||
|
||||
Reference in New Issue
Block a user