Don't validate anything when saving a draft

This commit is contained in:
richard-dds 2018-11-12 10:56:54 -05:00
parent a4074000e9
commit 2b07491c47
3 changed files with 21 additions and 54 deletions

View File

@ -32,19 +32,20 @@ def coerce_choice(val):
class DraftValidateMixin(object):
def validate_draft(self):
"""
Make all fields optional before validation, and then return them to
their previous state.
"""
for field in self:
field.validators.insert(0, Optional())
return True
# """
# Make all fields optional before validation, and then return them to
# their previous state.
# """
# for field in self:
# field.validators.insert(0, Optional())
valid = self.validate()
# valid = self.validate()
for field in self:
field.validators.pop(0)
# for field in self:
# field.validators.pop(0)
return valid
# return valid
class TaskOrderForm(ValidatedForm, DraftValidateMixin):

View File

@ -168,29 +168,16 @@ class SaveFinancialVerificationDraft(FinancialVerificationBase):
def execute(self):
form = self._get_form(self.request, self.is_extended, self.fv_data)
valid = True
if not form.validate_draft():
self._raise(form)
if form.pe_id.data and not self.pe_validator.validate(self.request, form.pe_id):
valid = False
if form.task_order.number.data and not self.task_order_validator.validate(
form.task_order.number
):
valid = False
attachment = self._process_attachment(self.is_extended, form)
task_order = self._try_create_task_order(form, attachment, self.is_extended)
updated_request = Requests.update_financial_verification(
self.request.id, form.request.data, task_order=task_order
)
if valid:
return updated_request
else:
self._raise(form)
return updated_request
@requests_bp.route("/requests/verify/<string:request_id>", methods=["GET"])

View File

@ -193,39 +193,18 @@ def test_save_draft_with_ba_code():
assert save_draft.execute()
def test_save_draft_with_invalid_task_order(fv_data):
def test_save_draft_allows_invalid_data():
request = RequestFactory.create()
user = UserFactory.create()
save_draft = SaveFinancialVerificationDraft(
TrueValidator, FalseValidator, user, request, fv_data, is_extended=False
)
data = {
"task_order-number": MANUAL_TO_NUMBER,
"request-pe_id": "123",
"request-ba_code": "a"
}
with pytest.raises(FormValidationError):
assert save_draft.execute()
def test_save_draft_with_invalid_pe_number(fv_data):
request = RequestFactory.create()
user = UserFactory.create()
save_draft = SaveFinancialVerificationDraft(
FalseValidator, TrueValidator, user, request, fv_data, is_extended=False
)
with pytest.raises(FormValidationError):
assert save_draft.execute()
def test_save_draft_re_enter_pe_number(fv_data):
request = RequestFactory.create()
user = UserFactory.create()
data = {**fv_data, "pe_id": "0101228M"}
save_fv = SaveFinancialVerificationDraft(
PENumberValidator(), TrueValidator, user, request, data, is_extended=False
)
with pytest.raises(FormValidationError):
save_fv.execute()
save_fv.execute()
assert SaveFinancialVerificationDraft(
PENumberValidator(), TaskOrderNumberValidator(), user, request, data, is_extended=True
).execute()
def test_save_draft_and_then_submit():