Merge pull request #1019 from dod-ccpo/upload-error-handling

Add validations and error states for TO upload form
This commit is contained in:
dandds
2019-08-14 14:30:46 -04:00
committed by GitHub
10 changed files with 102 additions and 43 deletions

View File

@@ -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(