diff --git a/atst/models/task_order.py b/atst/models/task_order.py index 1d006022..09e275b9 100644 --- a/atst/models/task_order.py +++ b/atst/models/task_order.py @@ -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( diff --git a/tests/models/test_legacy_task_order.py b/tests/models/test_legacy_task_order.py new file mode 100644 index 00000000..80e02b05 --- /dev/null +++ b/tests/models/test_legacy_task_order.py @@ -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 diff --git a/tests/models/test_task_order.py b/tests/models/test_task_order.py index 80e02b05..afd9611d 100644 --- a/tests/models/test_task_order.py +++ b/tests/models/test_task_order.py @@ -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