diff --git a/atst/filters.py b/atst/filters.py index 217b9e2f..c9aa682f 100644 --- a/atst/filters.py +++ b/atst/filters.py @@ -1,7 +1,6 @@ import re import datetime from flask import current_app as app -from werkzeug.datastructures import FileStorage def iconSvg(name): @@ -47,9 +46,9 @@ def mixedContentToJson(value): if ( isinstance(value, dict) and "task_order" in value - and isinstance(value["task_order"], FileStorage) + and hasattr(value["task_order"]["pdf"], "filename") ): - value["task_order"] = value["task_order"].filename + value["task_order"]["pdf"] = value["task_order"]["pdf"].filename return app.jinja_env.filters["tojson"](value) diff --git a/tests/routes/test_financial_verification.py b/tests/routes/test_financial_verification.py index 3c0241dc..8c1f3da4 100644 --- a/tests/routes/test_financial_verification.py +++ b/tests/routes/test_financial_verification.py @@ -487,3 +487,35 @@ def test_can_submit_once_to_details_are_entered(fv_data, e_fv_data): assert UpdateFinancialVerification( TrueValidator, TrueValidator, user, request, data, is_extended=True ).execute() + + +def test_existing_task_order_with_pdf(fv_data, e_fv_data, client, user_session): + # Use finver route to create initial TO #1, complete with PDF + user = UserFactory.create() + request = RequestFactory.create(creator=user) + data = {**fv_data, **e_fv_data, "task_order-number": MANUAL_TO_NUMBER} + UpdateFinancialVerification( + TrueValidator, TaskOrderNumberValidator(), user, request, data, is_extended=True + ).execute() + + # Save draft on a new finver form, but with same number as TO #1 + user = UserFactory.create() + request = RequestFactory.create(creator=user) + data = {"task_order-number": MANUAL_TO_NUMBER} + SaveFinancialVerificationDraft( + TrueValidator, + TaskOrderNumberValidator(), + user, + request, + data, + is_extended=False, + ).execute() + + # Get finver form + user_session(user) + response = client.get( + url_for("requests.financial_verification", request_id=request.id), + follow_redirects=True, + ) + + assert response.status_code == 200