Fix setting default status on task orders

This commit is contained in:
Patrick Smith 2019-01-11 10:28:39 -05:00
parent dda6db8562
commit 2b61621402
3 changed files with 32 additions and 18 deletions

View File

@ -33,7 +33,7 @@ class TaskOrder(Base, mixins.TimestampsMixin):
so_id = Column(ForeignKey("users.id"))
security_officer = relationship("User", foreign_keys="TaskOrder.so_id")
status = Column(SQLAEnum(Status, native_enum=False, default=Status.PENDING))
status = Column(SQLAEnum(Status, native_enum=False))
scope = Column(String) # Cloud Project Scope
defense_component = Column(String) # Department of Defense Component
@ -65,6 +65,11 @@ class TaskOrder(Base, mixins.TimestampsMixin):
number = Column(String, unique=True) # Task Order Number
loa = Column(ARRAY(String)) # Line of Accounting (LOA)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if "status" not in kwargs:
self.status = Status.PENDING
@property
def budget(self):
return sum(

View File

@ -0,0 +1,20 @@
from tests.factories import LegacyTaskOrderFactory
from tests.assert_util import dict_contains
def test_as_dictionary():
data = LegacyTaskOrderFactory.dictionary()
real_task_order = LegacyTaskOrderFactory.create(**data)
assert dict_contains(real_task_order.to_dictionary(), data)
def test_budget():
legacy_task_order = LegacyTaskOrderFactory.create(
clin_0001=500,
clin_0003=200,
clin_1001=None,
clin_1003=None,
clin_2001=None,
clin_2003=None,
)
assert legacy_task_order.budget == 700

View File

@ -1,20 +1,9 @@
from tests.factories import LegacyTaskOrderFactory
from tests.assert_util import dict_contains
from atst.models.task_order import TaskOrder, Status
def test_as_dictionary():
data = LegacyTaskOrderFactory.dictionary()
real_task_order = LegacyTaskOrderFactory.create(**data)
assert dict_contains(real_task_order.to_dictionary(), data)
def test_default_status():
to = TaskOrder()
assert to.status == Status.PENDING
def test_budget():
legacy_task_order = LegacyTaskOrderFactory.create(
clin_0001=500,
clin_0003=200,
clin_1001=None,
clin_1003=None,
clin_2001=None,
clin_2003=None,
)
assert legacy_task_order.budget == 700
with_args = TaskOrder(number="42")
assert to.status == Status.PENDING