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):
|
class DraftValidateMixin(object):
|
||||||
def validate_draft(self):
|
def validate_draft(self):
|
||||||
"""
|
return True
|
||||||
Make all fields optional before validation, and then return them to
|
# """
|
||||||
their previous state.
|
# Make all fields optional before validation, and then return them to
|
||||||
"""
|
# their previous state.
|
||||||
for field in self:
|
# """
|
||||||
field.validators.insert(0, Optional())
|
# for field in self:
|
||||||
|
# field.validators.insert(0, Optional())
|
||||||
|
|
||||||
valid = self.validate()
|
# valid = self.validate()
|
||||||
|
|
||||||
for field in self:
|
# for field in self:
|
||||||
field.validators.pop(0)
|
# field.validators.pop(0)
|
||||||
|
|
||||||
return valid
|
# return valid
|
||||||
|
|
||||||
|
|
||||||
class TaskOrderForm(ValidatedForm, DraftValidateMixin):
|
class TaskOrderForm(ValidatedForm, DraftValidateMixin):
|
||||||
|
@ -168,29 +168,16 @@ class SaveFinancialVerificationDraft(FinancialVerificationBase):
|
|||||||
|
|
||||||
def execute(self):
|
def execute(self):
|
||||||
form = self._get_form(self.request, self.is_extended, self.fv_data)
|
form = self._get_form(self.request, self.is_extended, self.fv_data)
|
||||||
valid = True
|
|
||||||
|
|
||||||
if not form.validate_draft():
|
if not form.validate_draft():
|
||||||
self._raise(form)
|
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)
|
attachment = self._process_attachment(self.is_extended, form)
|
||||||
task_order = self._try_create_task_order(form, attachment, self.is_extended)
|
task_order = self._try_create_task_order(form, attachment, self.is_extended)
|
||||||
updated_request = Requests.update_financial_verification(
|
updated_request = Requests.update_financial_verification(
|
||||||
self.request.id, form.request.data, task_order=task_order
|
self.request.id, form.request.data, task_order=task_order
|
||||||
)
|
)
|
||||||
|
|
||||||
if valid:
|
return updated_request
|
||||||
return updated_request
|
|
||||||
else:
|
|
||||||
self._raise(form)
|
|
||||||
|
|
||||||
|
|
||||||
@requests_bp.route("/requests/verify/<string:request_id>", methods=["GET"])
|
@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()
|
assert save_draft.execute()
|
||||||
|
|
||||||
|
|
||||||
def test_save_draft_with_invalid_task_order(fv_data):
|
def test_save_draft_allows_invalid_data():
|
||||||
request = RequestFactory.create()
|
request = RequestFactory.create()
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
save_draft = SaveFinancialVerificationDraft(
|
data = {
|
||||||
TrueValidator, FalseValidator, user, request, fv_data, is_extended=False
|
"task_order-number": MANUAL_TO_NUMBER,
|
||||||
)
|
"request-pe_id": "123",
|
||||||
|
"request-ba_code": "a"
|
||||||
|
}
|
||||||
|
|
||||||
with pytest.raises(FormValidationError):
|
assert SaveFinancialVerificationDraft(
|
||||||
assert save_draft.execute()
|
PENumberValidator(), TaskOrderNumberValidator(), user, request, data, is_extended=True
|
||||||
|
).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()
|
|
||||||
|
|
||||||
|
|
||||||
def test_save_draft_and_then_submit():
|
def test_save_draft_and_then_submit():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user