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 .fields import NewlineListField, SelectField, NumberStringField
|
||||
from .forms import ValidatedForm
|
||||
from atst.forms.forms import ValidatedForm
|
||||
from .data import FUNDING_TYPES
|
||||
from .validators import DateRange
|
||||
|
||||
@ -30,9 +30,21 @@ class BaseFinancialForm(ValidatedForm):
|
||||
self.uii_ids.process_data(self.uii_ids.data)
|
||||
|
||||
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:
|
||||
field.validators.insert(0, Optional())
|
||||
return self.validate()
|
||||
|
||||
valid = self.validate()
|
||||
|
||||
for field in self:
|
||||
field.validators.pop(0)
|
||||
|
||||
return valid
|
||||
|
||||
@property
|
||||
def is_missing_task_order_number(self):
|
||||
|
@ -61,7 +61,6 @@ def test_update_fv(fv_data):
|
||||
assert updated_request.is_pending_ccpo_approval
|
||||
|
||||
|
||||
|
||||
def test_update_fv_re_enter_pe_number(fv_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
@ -186,6 +185,20 @@ def test_save_draft_re_enter_pe_number(fv_data):
|
||||
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):
|
||||
user = UserFactory.create()
|
||||
request = RequestFactory.create(creator=user)
|
||||
|
Loading…
x
Reference in New Issue
Block a user