mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
Add a url_converter to check the date format.
This commit is contained in:
@@ -85,6 +85,7 @@ from app.notify_client.template_statistics_api_client import (
|
||||
from app.notify_client.user_api_client import user_api_client
|
||||
from app.url_converters import (
|
||||
LetterFileExtensionConverter,
|
||||
SimpleDateTypeConverter,
|
||||
TemplateTypeConverter,
|
||||
)
|
||||
from app.utils import format_thousands, get_logo_cdn_domain, id_safe
|
||||
@@ -221,6 +222,7 @@ def init_app(application):
|
||||
application.url_map.converters['uuid'].to_python = lambda self, value: value
|
||||
application.url_map.converters['template_type'] = TemplateTypeConverter
|
||||
application.url_map.converters['letter_file_extension'] = LetterFileExtensionConverter
|
||||
application.url_map.converters['simple_date'] = SimpleDateTypeConverter
|
||||
|
||||
|
||||
def convert_to_boolean(value):
|
||||
|
||||
@@ -17,7 +17,7 @@ def returned_letter_summary(service_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/returned-letters-csv/<reported_at>", methods=["GET"])
|
||||
@main.route("/services/<uuid:service_id>/returned-letters-csv/<simple_date:reported_at>", methods=["GET"])
|
||||
@user_has_permissions('view_activity')
|
||||
def returned_letters_report(service_id, reported_at):
|
||||
returned_letters = service_api_client.get_returned_letters(service_id, reported_at)
|
||||
|
||||
@@ -9,3 +9,7 @@ class TemplateTypeConverter(BaseConverter):
|
||||
class LetterFileExtensionConverter(BaseConverter):
|
||||
|
||||
regex = '(?:pdf|png)'
|
||||
|
||||
|
||||
class SimpleDateTypeConverter(BaseConverter):
|
||||
regex = r'([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))'
|
||||
|
||||
@@ -70,3 +70,15 @@ def test_returned_letters_reports(
|
||||
+ '12345678,2344567,2019-12-24 13:30,test@gov.uk,'
|
||||
+ 'First letter template,3445667,2,,,test_letter.pdf'
|
||||
)
|
||||
|
||||
|
||||
def test_returned_letters_reports_returns_404_for_bad_date(
|
||||
client_request,
|
||||
mocker
|
||||
):
|
||||
mock = mocker.patch("app.service_api_client.get_returned_letters")
|
||||
client_request.get_response("main.returned_letters_report",
|
||||
service_id=SERVICE_ONE_ID,
|
||||
reported_at='19-12-2019',
|
||||
_expected_status=404)
|
||||
mock.assert_not_called()
|
||||
|
||||
Reference in New Issue
Block a user