Use Enum for request statuses

This commit is contained in:
richard-dds
2018-08-07 16:41:47 -04:00
parent 0c9005aaf6
commit 49b9fca793
5 changed files with 25 additions and 26 deletions

View File

@@ -3,6 +3,7 @@ from uuid import uuid4
from atst.domain.exceptions import NotFoundError
from atst.domain.requests import Requests
from atst.models.request_status_event import RequestStatus
from tests.factories import RequestFactory
@@ -25,25 +26,25 @@ def test_nonexistent_request_raises():
def test_new_request_has_started_status():
request = Requests.create(uuid4(), {})
assert request.status == "started"
assert request.status == RequestStatus.STARTED
def test_auto_approve_less_than_1m(new_request):
new_request.body = {"details_of_use": {"dollar_value": 999999}}
request = Requests.submit(new_request)
assert request.status == "pending_financial_verification"
assert request.status == RequestStatus.PENDING_FINANCIAL_VERIFICATION
def test_dont_auto_approve_if_dollar_value_is_1m_or_above(new_request):
new_request.body = {"details_of_use": {"dollar_value": 1000000}}
request = Requests.submit(new_request)
assert request.status == "pending_ccpo_approval"
assert request.status == RequestStatus.PENDING_CCPO_APPROVAL
def test_dont_auto_approve_if_no_dollar_value_specified(new_request):
new_request.body = {"details_of_use": {}}
request = Requests.submit(new_request)
assert request.status == "pending_ccpo_approval"
assert request.status == RequestStatus.PENDING_CCPO_APPROVAL

View File

@@ -1,7 +1,8 @@
import factory
from uuid import uuid4
from atst.models import Request, RequestStatusEvent
from atst.models.request import Request
from atst.models.request_status_event import RequestStatusEvent, RequestStatus
from atst.models.pe_number import PENumber
from atst.models.task_order import TaskOrder
from atst.models.user import User
@@ -9,34 +10,31 @@ from atst.models.role import Role
class RequestStatusFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = RequestStatusEvent
class RequestFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = Request
id = factory.Sequence(lambda x: uuid4())
status_events = factory.RelatedFactory(RequestStatusFactory, "request", new_status="started")
status_events = factory.RelatedFactory(
RequestStatusFactory, "request", new_status=RequestStatus.STARTED
)
class PENumberFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = PENumber
class TaskOrderFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = TaskOrder
class RoleFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = Role
@@ -44,7 +42,6 @@ class RoleFactory(factory.alchemy.SQLAlchemyModelFactory):
class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = User
@@ -53,4 +50,3 @@ class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
first_name = "Fake"
last_name = "User"
atat_role = factory.SubFactory(RoleFactory)