54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import pytest
|
|
from uuid import uuid4
|
|
|
|
from atst.domain.exceptions import NotFoundError
|
|
from atst.domain.workspaces import Workspaces
|
|
from atst.domain.workspace_users import WorkspaceUsers
|
|
|
|
from tests.factories import WorkspaceFactory, RequestFactory, UserFactory
|
|
|
|
|
|
def test_can_create_workspace():
|
|
request = RequestFactory.create()
|
|
workspace = Workspaces.create(request, name="frugal-whale")
|
|
assert workspace.name == "frugal-whale"
|
|
assert workspace.request == request
|
|
|
|
|
|
def test_default_workspace_name_is_request_id():
|
|
request = RequestFactory.create()
|
|
workspace = Workspaces.create(request)
|
|
assert workspace.request == request
|
|
assert workspace.name == str(request.id)
|
|
|
|
|
|
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
|
|
|
|
|
|
def test_creating_workspace_adds_owner():
|
|
user = UserFactory.create()
|
|
request = RequestFactory.create(creator=user)
|
|
workspace = Workspaces.create(request)
|
|
workspace_user = WorkspaceUsers.get(workspace.id, user.id)
|
|
assert workspace_user.workspace_role
|
|
|
|
|
|
def test_workspace_has_timestamps():
|
|
request = RequestFactory.create()
|
|
workspace = Workspaces.create(request)
|
|
assert workspace.time_created == workspace.time_updated
|