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:
@@ -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
|
||||
|
@@ -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
|
||||
):
|
||||
|
Reference in New Issue
Block a user