Add tests for portfolio.initial_clin_dict property
In doing this, fixed a bug on the clin.is_active property
This commit is contained in:
parent
dba63cdd15
commit
bb886dbe0f
@ -81,5 +81,5 @@ class CLIN(Base, mixins.TimestampsMixin):
|
|||||||
@property
|
@property
|
||||||
def is_active(self):
|
def is_active(self):
|
||||||
return (
|
return (
|
||||||
self.start_date <= pendulum.today() <= self.end_date
|
self.start_date <= pendulum.today().date() <= self.end_date
|
||||||
) and self.task_order.signed_at
|
) and self.task_order.signed_at
|
||||||
|
@ -179,3 +179,58 @@ class TestUpcomingObligatedFunds:
|
|||||||
)
|
)
|
||||||
# Only sums the upcoming task order
|
# Only sums the upcoming task order
|
||||||
assert portfolio.upcoming_obligated_funds == Decimal(700.0)
|
assert portfolio.upcoming_obligated_funds == Decimal(700.0)
|
||||||
|
|
||||||
|
|
||||||
|
class TestInitialClinDict:
|
||||||
|
def test_formats_dict_correctly(self):
|
||||||
|
portfolio = PortfolioFactory()
|
||||||
|
task_order = TaskOrderFactory(
|
||||||
|
portfolio=portfolio, number="1234567890123", signed_at=pendulum.now()
|
||||||
|
)
|
||||||
|
clin = CLINFactory(task_order=task_order)
|
||||||
|
initial_clin = portfolio.initial_clin_dict
|
||||||
|
|
||||||
|
assert initial_clin["initial_clin_amount"] == clin.obligated_amount
|
||||||
|
assert initial_clin["initial_clin_start_date"] == clin.start_date.strftime(
|
||||||
|
"%Y/%m/%d"
|
||||||
|
)
|
||||||
|
assert initial_clin["initial_clin_end_date"] == clin.end_date.strftime(
|
||||||
|
"%Y/%m/%d"
|
||||||
|
)
|
||||||
|
assert initial_clin["initial_clin_type"] == clin.jedi_clin_number
|
||||||
|
assert initial_clin["initial_clin_number"] == clin.number
|
||||||
|
assert initial_clin["initial_task_order_id"] == task_order.number
|
||||||
|
|
||||||
|
def test_no_valid_clins(self):
|
||||||
|
portfolio = PortfolioFactory()
|
||||||
|
assert portfolio.initial_clin_dict == {}
|
||||||
|
|
||||||
|
def test_picks_the_initial_clin(self):
|
||||||
|
yesterday = pendulum.now().subtract(days=1).date()
|
||||||
|
tomorrow = pendulum.now().add(days=1).date()
|
||||||
|
portfolio = PortfolioFactory(
|
||||||
|
task_orders=[
|
||||||
|
{
|
||||||
|
"signed_at": pendulum.now(),
|
||||||
|
"create_clins": [
|
||||||
|
{
|
||||||
|
"number": "0001",
|
||||||
|
"start_date": yesterday.subtract(days=1),
|
||||||
|
"end_date": yesterday,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"number": "1001",
|
||||||
|
"start_date": yesterday,
|
||||||
|
"end_date": tomorrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"number": "0002",
|
||||||
|
"start_date": yesterday,
|
||||||
|
"end_date": tomorrow,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{"create_clins": [{"number": "0003"}]},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
assert portfolio.initial_clin_dict["initial_clin_number"] == "1001"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user