Merge pull request #1893 from alphagov/fix-date-issue-for-letters

Fix BST bug
This commit is contained in:
Rebecca Law
2018-05-30 11:21:11 +01:00
committed by GitHub
2 changed files with 23 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ from flask import current_app
from notifications_utils.s3 import s3upload
from app.models import KEY_TYPE_TEST
from app.utils import convert_utc_to_bst
from app.variables import Retention
@@ -26,7 +27,7 @@ def get_folder_name(_now, is_test_or_scan_letter=False):
folder_name = ''
else:
print_datetime = _now
if _now.time() > current_app.config.get('LETTER_PROCESSING_DEADLINE'):
if convert_utc_to_bst(_now).time() > current_app.config.get('LETTER_PROCESSING_DEADLINE'):
print_datetime = _now + timedelta(days=1)
folder_name = '{}/'.format(print_datetime.date())
return folder_name

View File

@@ -12,7 +12,8 @@ from app.letters.utils import (
get_letter_pdf,
upload_letter_pdf,
move_scanned_pdf_to_test_or_live_pdf_bucket,
ScanErrorType, move_failed_pdf)
ScanErrorType, move_failed_pdf, get_folder_name
)
from app.models import KEY_TYPE_NORMAL, KEY_TYPE_TEST, PRECOMPILED_TEMPLATE_NAME
from app.variables import Retention
@@ -199,3 +200,22 @@ def test_move_failed_pdf_scan_failed(notify_api):
assert 'FAILURE/' + filename in [o.key for o in bucket.objects.all()]
assert filename not in [o.key for o in bucket.objects.all()]
@pytest.mark.parametrize("freeze_date, 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/"),
("2018-07-02 16:31:00", "2018-07-03/"),
("2018-01-02 16:31:00", "2018-01-02/"),
("2018-01-02 17:31: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, is_test_or_scan_letter=False)
assert folder_name == expected_folder_name
def test_get_folder_name_returns_empty_string_for_test_letter():
assert '' == get_folder_name(datetime.utcnow(), is_test_or_scan_letter=True)