domain repos for PE numbers and task orders
This commit is contained in:
parent
c02a95d00a
commit
2e13c4772b
15
atst/domain/pe_numbers.py
Normal file
15
atst/domain/pe_numbers.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
from atst.models.pe_number import PENumber
|
||||||
|
from .exceptions import NotFoundError
|
||||||
|
|
||||||
|
|
||||||
|
class PENumbers(object):
|
||||||
|
|
||||||
|
def __init__(self, db_session):
|
||||||
|
self.db_session = db_session
|
||||||
|
|
||||||
|
def get(self, number):
|
||||||
|
pe_number = self.db_session.query(PENumber).get(number)
|
||||||
|
if not pe_number:
|
||||||
|
raise NotFoundError("pe_number")
|
||||||
|
|
||||||
|
return pe_number
|
18
atst/domain/task_orders.py
Normal file
18
atst/domain/task_orders.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
from sqlalchemy.orm.exc import NoResultFound
|
||||||
|
|
||||||
|
from atst.models.task_order import TaskOrder
|
||||||
|
from .exceptions import NotFoundError
|
||||||
|
|
||||||
|
|
||||||
|
class TaskOrders(object):
|
||||||
|
|
||||||
|
def __init__(self, db_session):
|
||||||
|
self.db_session = db_session
|
||||||
|
|
||||||
|
def get(self, order_number):
|
||||||
|
try:
|
||||||
|
task_order = self.db_session.query(TaskOrder).filter_by(number=order_number).one()
|
||||||
|
except NoResultFound:
|
||||||
|
raise NotFoundError("task_order")
|
||||||
|
|
||||||
|
return task_order
|
34
tests/domain/test_pe_numbers.py
Normal file
34
tests/domain/test_pe_numbers.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from atst.domain.exceptions import NotFoundError
|
||||||
|
from atst.domain.pe_numbers import PENumbers
|
||||||
|
|
||||||
|
from tests.factories import PENumberFactory
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def pe_numbers(db):
|
||||||
|
return PENumbers(db)
|
||||||
|
|
||||||
|
@pytest.fixture(scope="function")
|
||||||
|
def new_pe_number(db):
|
||||||
|
def make_pe_number(**kwargs):
|
||||||
|
pen = PENumberFactory.create(**kwargs)
|
||||||
|
db.add(pen)
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
return pen
|
||||||
|
|
||||||
|
return make_pe_number
|
||||||
|
|
||||||
|
|
||||||
|
def test_can_get_pe_number(pe_numbers, new_pe_number):
|
||||||
|
new_pen = new_pe_number(number="0101969F", description="Combat Support - Offensive")
|
||||||
|
pen = pe_numbers.get(new_pen.number)
|
||||||
|
|
||||||
|
assert pen.number == new_pen.number
|
||||||
|
|
||||||
|
|
||||||
|
def test_nonexistent_pe_number_raises(pe_numbers):
|
||||||
|
with pytest.raises(NotFoundError):
|
||||||
|
pe_numbers.get("some fake number")
|
34
tests/domain/test_task_orders.py
Normal file
34
tests/domain/test_task_orders.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from atst.domain.exceptions import NotFoundError
|
||||||
|
from atst.domain.task_orders import TaskOrders
|
||||||
|
|
||||||
|
from tests.factories import TaskOrderFactory
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def task_orders(db):
|
||||||
|
return TaskOrders(db)
|
||||||
|
|
||||||
|
@pytest.fixture(scope="function")
|
||||||
|
def new_task_order(db):
|
||||||
|
def make_task_order(**kwargs):
|
||||||
|
to = TaskOrderFactory.create(**kwargs)
|
||||||
|
db.add(to)
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
return to
|
||||||
|
|
||||||
|
return make_task_order
|
||||||
|
|
||||||
|
|
||||||
|
def test_can_get_task_order(task_orders, new_task_order):
|
||||||
|
new_to = new_task_order(number="0101969F")
|
||||||
|
to = task_orders.get(new_to.number)
|
||||||
|
|
||||||
|
assert to.id == to.id
|
||||||
|
|
||||||
|
|
||||||
|
def test_nonexistent_task_order_raises(task_orders):
|
||||||
|
with pytest.raises(NotFoundError):
|
||||||
|
task_orders.get("some fake number")
|
@ -1,7 +1,9 @@
|
|||||||
import factory
|
import factory
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from atst.models import Request
|
from atst.models import Request, RequestStatusEvent
|
||||||
|
from atst.models.pe_number import PENumber
|
||||||
|
from atst.models.task_order import TaskOrder
|
||||||
|
|
||||||
|
|
||||||
class RequestFactory(factory.Factory):
|
class RequestFactory(factory.Factory):
|
||||||
@ -9,3 +11,11 @@ class RequestFactory(factory.Factory):
|
|||||||
model = Request
|
model = Request
|
||||||
|
|
||||||
id = factory.Sequence(lambda x: uuid4())
|
id = factory.Sequence(lambda x: uuid4())
|
||||||
|
|
||||||
|
class PENumberFactory(factory.Factory):
|
||||||
|
class Meta:
|
||||||
|
model = PENumber
|
||||||
|
|
||||||
|
class TaskOrderFactory(factory.Factory):
|
||||||
|
class Meta:
|
||||||
|
model = TaskOrder
|
||||||
|
Loading…
x
Reference in New Issue
Block a user