Update TO route helper function to catch error and display flash message when a user tries to save a TO with an existing number.

Update TaskOrderForm so that it converts empty string for number into None, this was causing an issue where new TOs were being saved with an empty string for the number, which violated the unique constraint.
This commit is contained in:
leigh-mil
2019-12-12 14:21:30 -05:00
parent 9caef2883a
commit 78ef47f649
6 changed files with 70 additions and 20 deletions

View File

@@ -2,7 +2,7 @@ import datetime
from dateutil.relativedelta import relativedelta
from flask import current_app as app
from atst.forms.task_order import CLINForm
from atst.forms.task_order import CLINForm, TaskOrderForm
from atst.models import JEDICLINType
from atst.utils.localization import translate
@@ -106,3 +106,9 @@ def test_clin_form_dollar_amounts_out_of_range():
assert (
translate("forms.task_order.clin_funding_errors.funding_range_error")
) in invalid_clin_form.obligated_amount.errors
def test_no_number():
http_request_form_data = {}
form = TaskOrderForm(http_request_form_data)
assert form.data["number"] is None

View File

@@ -170,6 +170,26 @@ def test_task_orders_submit_form_step_two_add_number(client, user_session, task_
assert task_order.number == "1234567890"
def test_task_orders_submit_form_step_two_enforces_unique_number(
client, user_session, task_order, session
):
number = "1234567890123"
dupe_task_order = TaskOrderFactory.create(number=number)
portfolio = task_order.portfolio
user_session(task_order.portfolio.owner)
form_data = {"number": number}
session.begin_nested()
response = client.post(
url_for(
"task_orders.submit_form_step_two_add_number", task_order_id=task_order.id
),
data=form_data,
)
session.rollback()
assert response.status_code == 400
def test_task_orders_submit_form_step_two_add_number_existing_to(
client, user_session, task_order
):