Fix bug where saving draft caused submit to always succeed
This commit is contained in:
parent
4f1a3e8d0f
commit
5bd41a1016
@ -6,7 +6,7 @@ from wtforms.validators import InputRequired, Email, Regexp, Optional
|
|||||||
from flask_wtf.file import FileAllowed
|
from flask_wtf.file import FileAllowed
|
||||||
|
|
||||||
from .fields import NewlineListField, SelectField, NumberStringField
|
from .fields import NewlineListField, SelectField, NumberStringField
|
||||||
from .forms import ValidatedForm
|
from atst.forms.forms import ValidatedForm
|
||||||
from .data import FUNDING_TYPES
|
from .data import FUNDING_TYPES
|
||||||
from .validators import DateRange
|
from .validators import DateRange
|
||||||
|
|
||||||
@ -30,9 +30,21 @@ class BaseFinancialForm(ValidatedForm):
|
|||||||
self.uii_ids.process_data(self.uii_ids.data)
|
self.uii_ids.process_data(self.uii_ids.data)
|
||||||
|
|
||||||
def validate_draft(self):
|
def validate_draft(self):
|
||||||
|
"""
|
||||||
|
Another stupid workaround. Maybe there isn't a better way.
|
||||||
|
|
||||||
|
Make all fields optional before validation, and then return them to
|
||||||
|
their previous state.
|
||||||
|
"""
|
||||||
for field in self:
|
for field in self:
|
||||||
field.validators.insert(0, Optional())
|
field.validators.insert(0, Optional())
|
||||||
return self.validate()
|
|
||||||
|
valid = self.validate()
|
||||||
|
|
||||||
|
for field in self:
|
||||||
|
field.validators.pop(0)
|
||||||
|
|
||||||
|
return valid
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_missing_task_order_number(self):
|
def is_missing_task_order_number(self):
|
||||||
|
@ -61,7 +61,6 @@ def test_update_fv(fv_data):
|
|||||||
assert updated_request.is_pending_ccpo_approval
|
assert updated_request.is_pending_ccpo_approval
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_update_fv_re_enter_pe_number(fv_data):
|
def test_update_fv_re_enter_pe_number(fv_data):
|
||||||
request = RequestFactory.create()
|
request = RequestFactory.create()
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
@ -186,6 +185,20 @@ def test_save_draft_re_enter_pe_number(fv_data):
|
|||||||
save_fv.execute()
|
save_fv.execute()
|
||||||
|
|
||||||
|
|
||||||
|
def test_save_draft_and_then_submit():
|
||||||
|
request = RequestFactory.create()
|
||||||
|
user = UserFactory.create()
|
||||||
|
data = {"ba_code": "02A"}
|
||||||
|
updated_request = SaveFinancialVerificationDraft(
|
||||||
|
TrueValidator, TrueValidator, user, request, data, is_extended=False
|
||||||
|
).execute()
|
||||||
|
|
||||||
|
with pytest.raises(FormValidationError):
|
||||||
|
UpdateFinancialVerification(
|
||||||
|
TrueValidator, TrueValidator, user, updated_request, data
|
||||||
|
).execute()
|
||||||
|
|
||||||
|
|
||||||
def test_update_fv_route(client, user_session, fv_data):
|
def test_update_fv_route(client, user_session, fv_data):
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
request = RequestFactory.create(creator=user)
|
request = RequestFactory.create(creator=user)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user