Don't validate anything when saving a draft
This commit is contained in:
parent
a4074000e9
commit
2b07491c47
@ -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):
|
||||
|
@ -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"])
|
||||
|
@ -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():
|
||||
|
Loading…
x
Reference in New Issue
Block a user