Merge pull request #1019 from dod-ccpo/upload-error-handling
Add validations and error states for TO upload form
This commit is contained in:
@@ -1,16 +1,18 @@
|
||||
import pytest
|
||||
from flask import url_for, get_flashed_messages
|
||||
from datetime import timedelta, date
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.task_orders import TaskOrders
|
||||
from atst.models.task_order import Status as TaskOrderStatus
|
||||
from atst.models import TaskOrder
|
||||
|
||||
from tests.factories import CLINFactory, PortfolioFactory, TaskOrderFactory, UserFactory
|
||||
from tests.utils import captured_templates
|
||||
|
||||
|
||||
def build_pdf_form_data(filename="sample.pdf", object_name="object_name"):
|
||||
return {"pdf-filename": filename, "pdf-object_name": object_name}
|
||||
def build_pdf_form_data(filename="sample.pdf", object_name=None):
|
||||
return {"pdf-filename": filename, "pdf-object_name": object_name or uuid4()}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -101,6 +103,42 @@ def test_task_orders_submit_form_step_one_add_pdf_delete_pdf(
|
||||
assert response.status_code == 302
|
||||
|
||||
|
||||
def test_task_orders_submit_form_step_one_validates_filename(
|
||||
app, client, user_session, portfolio
|
||||
):
|
||||
user_session(portfolio.owner)
|
||||
with captured_templates(app) as templates:
|
||||
client.post(
|
||||
url_for(
|
||||
"task_orders.submit_form_step_one_add_pdf", portfolio_id=portfolio.id
|
||||
),
|
||||
data={"pdf-filename": "a" * 1024},
|
||||
follow_redirects=True,
|
||||
)
|
||||
|
||||
_, context = templates[-1]
|
||||
|
||||
assert "filename" in context["form"].pdf.errors
|
||||
|
||||
|
||||
def test_task_orders_submit_form_step_one_validates_object_name(
|
||||
app, client, user_session, portfolio
|
||||
):
|
||||
user_session(portfolio.owner)
|
||||
with captured_templates(app) as templates:
|
||||
client.post(
|
||||
url_for(
|
||||
"task_orders.submit_form_step_one_add_pdf", portfolio_id=portfolio.id
|
||||
),
|
||||
data={"pdf-object_name": "a" * 41},
|
||||
follow_redirects=True,
|
||||
)
|
||||
|
||||
_, context = templates[-1]
|
||||
|
||||
assert "object_name" in context["form"].pdf.errors
|
||||
|
||||
|
||||
def test_task_orders_form_step_two_add_number(client, user_session, task_order):
|
||||
user_session(task_order.creator)
|
||||
response = client.get(
|
||||
|
Reference in New Issue
Block a user