persist partial financial form data if task order number not found
This commit is contained in:
parent
70cc82a1e7
commit
6c67166e86
@ -1,7 +1,7 @@
|
|||||||
import re
|
import re
|
||||||
from wtforms.fields.html5 import EmailField
|
from wtforms.fields.html5 import EmailField
|
||||||
from wtforms.fields import StringField
|
from wtforms.fields import StringField
|
||||||
from wtforms.validators import Required, Email, Regexp, ValidationError
|
from wtforms.validators import Required, Email, Regexp
|
||||||
|
|
||||||
from atst.domain.exceptions import NotFoundError
|
from atst.domain.exceptions import NotFoundError
|
||||||
from atst.domain.pe_numbers import PENumbers
|
from atst.domain.pe_numbers import PENumbers
|
||||||
@ -58,6 +58,16 @@ def validate_pe_id(field, existing_request):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def validate_task_order_number(field):
|
||||||
|
try:
|
||||||
|
TaskOrders.get(field.data)
|
||||||
|
except NotFoundError:
|
||||||
|
field.errors += ("Task Order number not found",)
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class BaseFinancialForm(ValidatedForm):
|
class BaseFinancialForm(ValidatedForm):
|
||||||
def reset(self):
|
def reset(self):
|
||||||
"""
|
"""
|
||||||
@ -119,11 +129,10 @@ class BaseFinancialForm(ValidatedForm):
|
|||||||
|
|
||||||
|
|
||||||
class FinancialForm(BaseFinancialForm):
|
class FinancialForm(BaseFinancialForm):
|
||||||
def validate_task_order_number(form, field):
|
def perform_extra_validation(self, existing_request):
|
||||||
try:
|
previous_valid = super().perform_extra_validation(existing_request)
|
||||||
TaskOrders.get(field.data)
|
task_order_valid = validate_task_order_number(self.task_order_number)
|
||||||
except NotFoundError:
|
return previous_valid and task_order_valid
|
||||||
raise ValidationError("Task Order number not found")
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_missing_task_order_number(self):
|
def is_missing_task_order_number(self):
|
||||||
|
@ -71,13 +71,14 @@ def test_ba_code_validation(input_, expected):
|
|||||||
|
|
||||||
def test_task_order_number_validation(monkeypatch):
|
def test_task_order_number_validation(monkeypatch):
|
||||||
monkeypatch.setattr("atst.domain.task_orders.TaskOrders._client", lambda: MockEDAClient())
|
monkeypatch.setattr("atst.domain.task_orders.TaskOrders._client", lambda: MockEDAClient())
|
||||||
|
monkeypatch.setattr("atst.forms.financial.validate_pe_id", lambda *args: True)
|
||||||
form_invalid = FinancialForm(data={"task_order_number": "1234"})
|
form_invalid = FinancialForm(data={"task_order_number": "1234"})
|
||||||
form_invalid.validate()
|
form_invalid.perform_extra_validation({})
|
||||||
|
|
||||||
assert "task_order_number" in form_invalid.errors
|
assert "task_order_number" in form_invalid.errors
|
||||||
|
|
||||||
form_valid = FinancialForm(data={"task_order_number": MockEDAClient.MOCK_CONTRACT_NUMBER}, eda_client=MockEDAClient())
|
form_valid = FinancialForm(data={"task_order_number": MockEDAClient.MOCK_CONTRACT_NUMBER}, eda_client=MockEDAClient())
|
||||||
form_valid.validate()
|
form_valid.perform_extra_validation({})
|
||||||
|
|
||||||
assert "task_order_number" not in form_valid.errors
|
assert "task_order_number" not in form_valid.errors
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user