atst/tests/domain/test_workspace_roles.py

66 lines
2.1 KiB
Python

from atst.domain.workspace_roles import WorkspaceRoles
from atst.domain.users import Users
from atst.models.workspace_role import Status as WorkspaceRoleStatus
from atst.domain.roles import Roles
from tests.factories import (
WorkspaceFactory,
UserFactory,
InvitationFactory,
WorkspaceRoleFactory,
)
def test_can_create_new_workspace_role():
workspace = WorkspaceFactory.create()
new_user = UserFactory.create()
workspace_role_dicts = [{"id": new_user.id, "workspace_role": "owner"}]
workspace_roles = WorkspaceRoles.add_many(workspace.id, workspace_role_dicts)
assert workspace_roles[0].user_id == new_user.id
assert workspace_roles[0].user.atat_role.name == new_user.atat_role.name
assert workspace_roles[0].role.name == new_user.workspace_roles[0].role.name
def test_can_update_existing_workspace_role():
workspace = WorkspaceFactory.create()
new_user = UserFactory.create()
WorkspaceRoles.add_many(
workspace.id, [{"id": new_user.id, "workspace_role": "owner"}]
)
workspace_roles = WorkspaceRoles.add_many(
workspace.id, [{"id": new_user.id, "workspace_role": "developer"}]
)
assert workspace_roles[0].user.atat_role.name == new_user.atat_role.name
assert workspace_roles[0].role.name == new_user.workspace_roles[0].role.name
def test_workspace_role_permissions():
workspace_one = WorkspaceFactory.create()
workspace_two = WorkspaceFactory.create()
new_user = UserFactory.create()
WorkspaceRoleFactory.create(
workspace=workspace_one,
user=new_user,
role=Roles.get("developer"),
status=WorkspaceRoleStatus.ACTIVE,
)
WorkspaceRoleFactory.create(
workspace=workspace_two,
user=new_user,
role=Roles.get("developer"),
status=WorkspaceRoleStatus.PENDING,
)
default_perms = set(new_user.atat_role.permissions)
assert len(
WorkspaceRoles.workspace_role_permissions(workspace_one, new_user)
) > len(default_perms)
assert (
WorkspaceRoles.workspace_role_permissions(workspace_two, new_user)
== default_perms
)