diff --git a/atst/routes/requests/financial_verification.py b/atst/routes/requests/financial_verification.py index 2a4d6443..0e37f068 100644 --- a/atst/routes/requests/financial_verification.py +++ b/atst/routes/requests/financial_verification.py @@ -30,12 +30,12 @@ class FinancialVerificationBase(object): _formdata = ImmutableMultiDict(formdata) if formdata is not None else None fv = FinancialVerification(request) form = FinancialVerificationForm(obj=fv, formdata=_formdata) - if is_extended: - try: - attachment = Attachment.get_for_resource("task_order", self.request.id) - form.task_order.pdf.data = attachment.filename - except NotFoundError: - pass + + try: + attachment = Attachment.get_for_resource("task_order", self.request.id) + form.task_order.pdf.data = attachment.filename + except NotFoundError: + pass return form @@ -173,7 +173,7 @@ class SaveFinancialVerificationDraft(FinancialVerificationBase): if not form.validate_draft(): self._raise(form) - if not self.pe_validator.validate(self.request, form.pe_id): + if form.pe_id.data and not self.pe_validator.validate(self.request, form.pe_id): valid = False if form.task_order.number.data and not self.task_order_validator.validate( diff --git a/tests/routes/test_financial_verification.py b/tests/routes/test_financial_verification.py index cbfc959d..3c0241dc 100644 --- a/tests/routes/test_financial_verification.py +++ b/tests/routes/test_financial_verification.py @@ -111,6 +111,20 @@ def test_update_fv_invalid_task_order_number(fv_data): update_fv.execute() +def test_draft_without_pe_id(fv_data): + request = RequestFactory.create() + user = UserFactory.create() + data = {"request-uii_ids": "1234"} + assert SaveFinancialVerificationDraft( + PENumberValidator(), + TaskOrderNumberValidator(), + user, + request, + data, + is_extended=False, + ).execute() + + def test_update_fv_extended(fv_data, e_fv_data): request = RequestFactory.create() user = UserFactory.create() @@ -403,6 +417,31 @@ def test_eda_task_order_does_trigger_approval(client, user_session, fv_data, e_f assert updated_request.status == RequestStatus.APPROVED +def test_attachment_on_non_extended_form(client, user_session, fv_data, e_fv_data): + user = UserFactory.create() + request = RequestFactory.create(creator=user) + data = { + **fv_data, + **e_fv_data, + "task_order-number": MockEDAClient.MOCK_CONTRACT_NUMBER, + "request-pe_id": "0101228N", + } + user_session(user) + client.post( + url_for( + "requests.financial_verification", request_id=request.id, extended=True + ), + data=data, + follow_redirects=True, + ) + + response = client.get( + url_for("requests.financial_verification", request_id=request.id) + ) + + assert response.status_code == 200 + + def test_task_order_number_persists_in_form(fv_data, e_fv_data): user = UserFactory.create() request = RequestFactory.create(creator=user)