Add query for finding new CLINs that have not been sent.
Use fixtures in tests.
This commit is contained in:
parent
b0f946dd35
commit
aa2d353260
@ -90,3 +90,13 @@ class TaskOrders(BaseDomainClass):
|
|||||||
)
|
)
|
||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_clins_for_create_billing_instructions(cls):
|
||||||
|
return (
|
||||||
|
db.session.query(CLIN)
|
||||||
|
.filter(
|
||||||
|
CLIN.last_sent_at.is_(None), CLIN.start_date < pendulum.now(tz="UTC")
|
||||||
|
)
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
@ -9,6 +9,27 @@ from atst.models.task_order import TaskOrder, SORT_ORDERING, Status
|
|||||||
from tests.factories import TaskOrderFactory, CLINFactory, PortfolioFactory
|
from tests.factories import TaskOrderFactory, CLINFactory, PortfolioFactory
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def new_task_order():
|
||||||
|
return TaskOrderFactory.create(create_clins=[{}])
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def updated_task_order():
|
||||||
|
return TaskOrderFactory.create(
|
||||||
|
create_clins=[{"last_sent_at": pendulum.date(2020, 2, 1)}],
|
||||||
|
pdf_last_sent_at=pendulum.date(2020, 1, 1),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def sent_task_order():
|
||||||
|
return TaskOrderFactory.create(
|
||||||
|
create_clins=[{"last_sent_at": pendulum.date(2020, 1, 1)}],
|
||||||
|
pdf_last_sent_at=pendulum.date(2020, 1, 1),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_create_adds_clins():
|
def test_create_adds_clins():
|
||||||
portfolio = PortfolioFactory.create()
|
portfolio = PortfolioFactory.create()
|
||||||
clins = [
|
clins = [
|
||||||
@ -181,19 +202,18 @@ def test_allows_alphanumeric_number():
|
|||||||
assert TaskOrders.create(portfolio.id, number, [], None)
|
assert TaskOrders.create(portfolio.id, number, [], None)
|
||||||
|
|
||||||
|
|
||||||
def test_get_for_send_task_order_files():
|
def test_get_for_send_task_order_files(
|
||||||
new_to = TaskOrderFactory.create(create_clins=[{}])
|
new_task_order, updated_task_order, sent_task_order
|
||||||
updated_to = TaskOrderFactory.create(
|
):
|
||||||
create_clins=[{"last_sent_at": pendulum.datetime(2020, 2, 1)}],
|
|
||||||
pdf_last_sent_at=pendulum.datetime(2020, 1, 1),
|
|
||||||
)
|
|
||||||
sent_to = TaskOrderFactory.create(
|
|
||||||
create_clins=[{"last_sent_at": pendulum.datetime(2020, 1, 1)}],
|
|
||||||
pdf_last_sent_at=pendulum.datetime(2020, 1, 1),
|
|
||||||
)
|
|
||||||
|
|
||||||
updated_and_new_task_orders = TaskOrders.get_for_send_task_order_files()
|
updated_and_new_task_orders = TaskOrders.get_for_send_task_order_files()
|
||||||
assert len(updated_and_new_task_orders) == 2
|
assert len(updated_and_new_task_orders) == 2
|
||||||
assert sent_to not in updated_and_new_task_orders
|
assert sent_task_order not in updated_and_new_task_orders
|
||||||
assert updated_to in updated_and_new_task_orders
|
assert updated_task_order in updated_and_new_task_orders
|
||||||
assert new_to in updated_and_new_task_orders
|
assert new_task_order in updated_and_new_task_orders
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_clins_for_create_billing_instructions(new_task_order, sent_task_order):
|
||||||
|
new_clins = TaskOrders.get_clins_for_create_billing_instructions()
|
||||||
|
assert len(new_clins) == 1
|
||||||
|
assert new_task_order.clins[0] in new_clins
|
||||||
|
assert sent_task_order.clins[0] not in new_clins
|
||||||
|
Loading…
x
Reference in New Issue
Block a user