Merge branch 'staging' into app-env-provisioning

This commit is contained in:
dandds
2020-01-29 11:16:55 -05:00
86 changed files with 2231 additions and 741 deletions

View File

@@ -71,7 +71,7 @@ def test_update_adds_clins():
def test_update_does_not_duplicate_clins():
task_order = TaskOrderFactory.create(
number="3453453456", create_clins=[{"number": "123"}, {"number": "456"}]
number="3453453456123", create_clins=[{"number": "123"}, {"number": "456"}]
)
clins = [
{
@@ -93,7 +93,7 @@ def test_update_does_not_duplicate_clins():
]
task_order = TaskOrders.update(
task_order_id=task_order.id,
number="0000000000",
number="0000000000000",
clins=clins,
pdf={"filename": "sample.pdf", "object_name": "1234567"},
)
@@ -170,3 +170,11 @@ def test_update_enforces_unique_number():
dupe_task_order = TaskOrderFactory.create()
with pytest.raises(AlreadyExistsError):
TaskOrders.update(dupe_task_order.id, task_order.number, [], None)
def test_allows_alphanumeric_number():
portfolio = PortfolioFactory.create()
valid_to_numbers = ["1234567890123", "ABC1234567890"]
for number in valid_to_numbers:
assert TaskOrders.create(portfolio.id, number, [], None)

View File

@@ -112,3 +112,37 @@ def test_no_number():
http_request_form_data = {}
form = TaskOrderForm(http_request_form_data)
assert form.data["number"] is None
def test_number_allows_alphanumeric():
valid_to_numbers = ["1234567890123", "ABC1234567890"]
for number in valid_to_numbers:
form = TaskOrderForm({"number": number})
assert form.validate()
def test_number_allows_between_13_and_17_characters():
valid_to_numbers = ["123456789012345", "ABCDEFG1234567890"]
for number in valid_to_numbers:
form = TaskOrderForm({"number": number})
assert form.validate()
def test_number_strips_dashes():
valid_to_numbers = ["123-456789-012345", "ABCD-EFG12345-67890"]
for number in valid_to_numbers:
form = TaskOrderForm({"number": number})
assert form.validate()
assert not "-" in form.number.data
def test_number_case_coerces_all_caps():
valid_to_numbers = ["12345678012345", "AbcEFg1234567890"]
for number in valid_to_numbers:
form = TaskOrderForm({"number": number})
assert form.validate()
assert form.number.data == number.upper()

View File

@@ -35,6 +35,7 @@ class TaskOrderPdfForm(Form):
class TaskOrderForm(Form):
pdf = FormField(TaskOrderPdfForm, label="task_order_pdf")
number = StringField(label="task_order_number", default="number")
@pytest.fixture
@@ -63,6 +64,12 @@ def multi_checkbox_input_macro(env):
return getattr(multi_checkbox_template.module, "MultiCheckboxInput")
@pytest.fixture
def text_input_macro(env):
text_input_template = env.get_template("components/text_input.html")
return getattr(text_input_template.module, "TextInput")
@pytest.fixture
def initial_value_form(scope="function"):
return InitialValueForm()
@@ -170,3 +177,10 @@ def test_make_pop_date_range(env, app):
index=1,
)
write_template(pop_date_range, "pop_date_range.html")
def test_make_text_input_template(text_input_macro, task_order_form):
text_input_to_number = text_input_macro(
task_order_form.number, validation="taskOrderNumber"
)
write_template(text_input_to_number, "text_input_to_number.html")

View File

@@ -158,7 +158,7 @@ def test_task_orders_form_step_two_add_number(client, user_session, task_order):
def test_task_orders_submit_form_step_two_add_number(client, user_session, task_order):
user_session(task_order.portfolio.owner)
form_data = {"number": "1234567890"}
form_data = {"number": "abc-1234567890"}
response = client.post(
url_for(
"task_orders.submit_form_step_two_add_number", task_order_id=task_order.id
@@ -167,7 +167,7 @@ def test_task_orders_submit_form_step_two_add_number(client, user_session, task_
)
assert response.status_code == 302
assert task_order.number == "1234567890"
assert task_order.number == "ABC1234567890" # pragma: allowlist secret
def test_task_orders_submit_form_step_two_enforces_unique_number(
@@ -194,7 +194,7 @@ def test_task_orders_submit_form_step_two_add_number_existing_to(
client, user_session, task_order
):
user_session(task_order.portfolio.owner)
form_data = {"number": "0000000000"}
form_data = {"number": "0000000000000"}
original_number = task_order.number
response = client.post(
url_for(
@@ -203,7 +203,7 @@ def test_task_orders_submit_form_step_two_add_number_existing_to(
data=form_data,
)
assert response.status_code == 302
assert task_order.number == "0000000000"
assert task_order.number == "0000000000000"
assert task_order.number != original_number

View File

@@ -663,7 +663,7 @@ def test_task_orders_new_get_routes(get_url_assert_status):
def test_task_orders_new_post_routes(post_url_assert_status):
post_routes = [
("task_orders.submit_form_step_one_add_pdf", {"pdf": ""}),
("task_orders.submit_form_step_two_add_number", {"number": "1234567890"}),
("task_orders.submit_form_step_two_add_number", {"number": "1234567890123"}),
(
"task_orders.submit_form_step_three_add_clins",
{