From 6eb64d4aaefe588b29af46eef50c9d9a275d384c Mon Sep 17 00:00:00 2001 From: richard-dds Date: Mon, 10 Jun 2019 13:28:56 -0400 Subject: [PATCH] Add test for TaskOrders.sort --- tests/domain/test_task_orders.py | 81 +++++++++++++++++++++++++++----- 1 file changed, 70 insertions(+), 11 deletions(-) diff --git a/tests/domain/test_task_orders.py b/tests/domain/test_task_orders.py index 6a337505..cbc47345 100644 --- a/tests/domain/test_task_orders.py +++ b/tests/domain/test_task_orders.py @@ -1,19 +1,78 @@ import pytest -from datetime import date +from datetime import date, timedelta from decimal import Decimal -from atst.domain.task_orders import TaskOrders, TaskOrderError -from atst.domain.exceptions import UnauthorizedError -from atst.domain.permission_sets import PermissionSets -from atst.domain.portfolio_roles import PortfolioRoles +from atst.domain.task_orders import TaskOrders from atst.models.attachment import Attachment +from tests.factories import TaskOrderFactory, CLINFactory -from tests.factories import ( - TaskOrderFactory, - UserFactory, - PortfolioRoleFactory, - PortfolioFactory, -) + +def test_task_order_sorting(): + """ + Task orders should be listed first by status, and then by time_created. + """ + + today = date.today() + yesterday = today - timedelta(days=1) + future = today + timedelta(days=100) + + task_orders = [ + # Draft + TaskOrderFactory.create(pdf=None), + TaskOrderFactory.create(pdf=None), + TaskOrderFactory.create(pdf=None), + # Active + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=yesterday, end_date=future)], + ), + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=yesterday, end_date=future)], + ), + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=yesterday, end_date=future)], + ), + # Upcoming + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=future, end_date=future)], + ), + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=future, end_date=future)], + ), + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=future, end_date=future)], + ), + # Expired + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=yesterday, end_date=yesterday)], + ), + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=yesterday, end_date=yesterday)], + ), + TaskOrderFactory.create( + signed_at=yesterday, + clins=[CLINFactory.create(start_date=yesterday, end_date=yesterday)], + ), + # Unsigned + TaskOrderFactory.create( + clins=[CLINFactory.create(start_date=today, end_date=today)] + ), + TaskOrderFactory.create( + clins=[CLINFactory.create(start_date=today, end_date=today)] + ), + TaskOrderFactory.create( + clins=[CLINFactory.create(start_date=today, end_date=today)] + ), + ] + + assert TaskOrders.sort(task_orders) == task_orders @pytest.mark.skip(reason="Need to reimplement after new TO form is created")