basic workspace model and repository implementation
This commit is contained in:
36
tests/domain/test_workspaces.py
Normal file
36
tests/domain/test_workspaces.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import pytest
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.exceptions import NotFoundError
|
||||
from atst.domain.workspaces import Workspaces
|
||||
|
||||
from tests.factories import WorkspaceFactory, RequestFactory, TaskOrderFactory
|
||||
|
||||
|
||||
def test_can_create_workspace():
|
||||
request = RequestFactory.create()
|
||||
to = TaskOrderFactory.create()
|
||||
workspace = Workspaces.create(request, to)
|
||||
assert workspace.request == request
|
||||
assert workspace.task_order == to
|
||||
assert workspace.name == request.id
|
||||
|
||||
workspace = Workspaces.create(request, to, name="frugal-whale")
|
||||
assert workspace.name == "frugal-whale"
|
||||
|
||||
|
||||
def test_can_get_workspace():
|
||||
workspace = WorkspaceFactory.create()
|
||||
found = Workspaces.get(workspace.id)
|
||||
assert workspace == found
|
||||
|
||||
|
||||
def test_nonexistent_workspace_raises():
|
||||
with pytest.raises(NotFoundError):
|
||||
Workspaces.get(uuid4())
|
||||
|
||||
|
||||
def test_can_get_workspace_by_request():
|
||||
workspace = WorkspaceFactory.create()
|
||||
found = Workspaces.get_by_request(workspace.request)
|
||||
assert workspace == found
|
||||
@@ -10,6 +10,7 @@ from atst.models.pe_number import PENumber
|
||||
from atst.models.task_order import TaskOrder
|
||||
from atst.models.user import User
|
||||
from atst.models.role import Role
|
||||
from atst.models.workspace import Workspace
|
||||
from atst.models.request_status_event import RequestStatusEvent
|
||||
from atst.domain.roles import Roles
|
||||
|
||||
@@ -102,3 +103,13 @@ class PENumberFactory(factory.alchemy.SQLAlchemyModelFactory):
|
||||
class TaskOrderFactory(factory.alchemy.SQLAlchemyModelFactory):
|
||||
class Meta:
|
||||
model = TaskOrder
|
||||
|
||||
|
||||
class WorkspaceFactory(factory.alchemy.SQLAlchemyModelFactory):
|
||||
class Meta:
|
||||
model = Workspace
|
||||
|
||||
request = factory.SubFactory(RequestFactory)
|
||||
task_order = factory.SubFactory(TaskOrderFactory)
|
||||
# name it the same as the request ID by default
|
||||
name = factory.LazyAttribute(lambda w: w.request.id)
|
||||
|
||||
Reference in New Issue
Block a user