Fix bug where saving draft caused submit to always succeed

This commit is contained in:
richard-dds 2018-10-16 20:33:27 -04:00
parent 4f1a3e8d0f
commit 5bd41a1016
2 changed files with 28 additions and 3 deletions

View File

@ -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):

View File

@ -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)