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
|
||||
from wtforms.fields.html5 import EmailField
|
||||
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.pe_numbers import PENumbers
|
||||
@ -58,6 +58,16 @@ def validate_pe_id(field, existing_request):
|
||||
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):
|
||||
def reset(self):
|
||||
"""
|
||||
@ -119,11 +129,10 @@ class BaseFinancialForm(ValidatedForm):
|
||||
|
||||
|
||||
class FinancialForm(BaseFinancialForm):
|
||||
def validate_task_order_number(form, field):
|
||||
try:
|
||||
TaskOrders.get(field.data)
|
||||
except NotFoundError:
|
||||
raise ValidationError("Task Order number not found")
|
||||
def perform_extra_validation(self, existing_request):
|
||||
previous_valid = super().perform_extra_validation(existing_request)
|
||||
task_order_valid = validate_task_order_number(self.task_order_number)
|
||||
return previous_valid and task_order_valid
|
||||
|
||||
@property
|
||||
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):
|
||||
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.validate()
|
||||
form_invalid.perform_extra_validation({})
|
||||
|
||||
assert "task_order_number" in form_invalid.errors
|
||||
|
||||
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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user