Show errors on new task order form when fields are invalid

Form errors were not being shown because a new form instance was being
created each time the `form` property was being called. Since the
`validate` method on the form adds the errors to the form instance, this
was causing no errors to be shown even if the form were invalid.
This commit is contained in:
Patrick Smith 2019-01-08 17:32:13 -05:00
parent 9883bde00c
commit 3a5c55410c
2 changed files with 24 additions and 1 deletions

View File

@ -108,10 +108,11 @@ class UpdateTaskOrderWorkflow(ShowTaskOrderWorkflow):
self.task_order_id = task_order_id
self._task_order = None
self._section = TASK_ORDER_SECTIONS[screen - 1]
self._form = self._section["form"](self.form_data)
@property
def form(self):
return self._section["form"](self.form_data)
return self._form
@property
def workspace(self):

View File

@ -70,6 +70,28 @@ def test_create_new_task_order(client, user_session):
assert url_for("task_orders.new", screen=4) in response.headers["Location"]
def test_task_order_form_shows_errors(client, user_session):
creator = UserFactory.create()
user_session(creator)
to = TaskOrderFactory.create()
task_order_data = TaskOrderFactory.dictionary()
funding_data = slice_data_for_section(task_order_data, "funding")
funding_data = serialize_dates(funding_data)
funding_data.update({"clin_01": "one milllllion dollars"})
response = client.post(
url_for("task_orders.update", screen=2, task_order_id=to.id),
data=funding_data,
follow_redirects=False,
)
body = response.data.decode()
assert "There were some errors" in body
assert "Not a valid integer" in body
def test_show_task_order():
workflow = ShowTaskOrderWorkflow()
assert workflow.task_order is None