Consolidate WorkspaceUser into WorkspaceRole
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.domain.workspace_users import WorkspaceUsers
|
||||
from atst.domain.workspace_roles import WorkspaceRoles
|
||||
|
||||
from tests.factories import UserFactory, WorkspaceFactory
|
||||
|
||||
@@ -37,12 +37,12 @@ def test_update_environment_roles():
|
||||
{"id": staging_env.id, "role": "developer"},
|
||||
]
|
||||
|
||||
workspace_user = workspace.members[0]
|
||||
workspace_role = workspace.members[0]
|
||||
Environments.update_environment_roles(
|
||||
owner, workspace, workspace_user, new_ids_and_roles
|
||||
owner, workspace, workspace_role, new_ids_and_roles
|
||||
)
|
||||
new_dev_env_role = EnvironmentRoles.get(workspace_user.user.id, dev_env.id)
|
||||
staging_env_role = EnvironmentRoles.get(workspace_user.user.id, staging_env.id)
|
||||
new_dev_env_role = EnvironmentRoles.get(workspace_role.user.id, dev_env.id)
|
||||
staging_env_role = EnvironmentRoles.get(workspace_role.user.id, staging_env.id)
|
||||
|
||||
assert new_dev_env_role.role == "billing_admin"
|
||||
assert staging_env_role.role == "developer"
|
||||
@@ -88,12 +88,12 @@ def test_remove_environment_role():
|
||||
{"id": now_none, "role": None},
|
||||
]
|
||||
|
||||
workspace_user = WorkspaceUsers.get(workspace.id, developer.id)
|
||||
workspace_role = WorkspaceRoles.get(workspace.id, developer.id)
|
||||
Environments.update_environment_roles(
|
||||
owner, workspace, workspace_user, new_environment_roles
|
||||
owner, workspace, workspace_role, new_environment_roles
|
||||
)
|
||||
|
||||
assert workspace_user.num_environment_roles == 2
|
||||
assert workspace_role.num_environment_roles == 2
|
||||
assert EnvironmentRoles.get(developer.id, now_ba).role == "billing_auditor"
|
||||
assert EnvironmentRoles.get(developer.id, now_none) is None
|
||||
assert EnvironmentRoles.get(developer.id, still_fa).role == "financial_auditor"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from atst.domain.workspace_users import WorkspaceUsers
|
||||
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
|
||||
@@ -11,40 +11,34 @@ from tests.factories import (
|
||||
)
|
||||
|
||||
|
||||
def test_can_create_new_workspace_user():
|
||||
def test_can_create_new_workspace_role():
|
||||
workspace = WorkspaceFactory.create()
|
||||
new_user = UserFactory.create()
|
||||
|
||||
workspace_user_dicts = [{"id": new_user.id, "workspace_role": "owner"}]
|
||||
workspace_users = WorkspaceUsers.add_many(workspace.id, workspace_user_dicts)
|
||||
workspace_role_dicts = [{"id": new_user.id, "workspace_role": "owner"}]
|
||||
workspace_roles = WorkspaceRoles.add_many(workspace.id, workspace_role_dicts)
|
||||
|
||||
assert workspace_users[0].user.id == new_user.id
|
||||
assert workspace_users[0].user.atat_role.name == new_user.atat_role.name
|
||||
assert (
|
||||
workspace_users[0].workspace_role.role.name
|
||||
== new_user.workspace_roles[0].role.name
|
||||
)
|
||||
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_user():
|
||||
def test_can_update_existing_workspace_role():
|
||||
workspace = WorkspaceFactory.create()
|
||||
new_user = UserFactory.create()
|
||||
|
||||
WorkspaceUsers.add_many(
|
||||
WorkspaceRoles.add_many(
|
||||
workspace.id, [{"id": new_user.id, "workspace_role": "owner"}]
|
||||
)
|
||||
workspace_users = WorkspaceUsers.add_many(
|
||||
workspace_roles = WorkspaceRoles.add_many(
|
||||
workspace.id, [{"id": new_user.id, "workspace_role": "developer"}]
|
||||
)
|
||||
|
||||
assert workspace_users[0].user.atat_role.name == new_user.atat_role.name
|
||||
assert (
|
||||
workspace_users[0].workspace_role.role.name
|
||||
== new_user.workspace_roles[0].role.name
|
||||
)
|
||||
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_user_permissions():
|
||||
def test_workspace_role_permissions():
|
||||
workspace_one = WorkspaceFactory.create()
|
||||
workspace_two = WorkspaceFactory.create()
|
||||
new_user = UserFactory.create()
|
||||
@@ -61,5 +55,5 @@ def test_workspace_user_permissions():
|
||||
status=WorkspaceRoleStatus.PENDING,
|
||||
)
|
||||
|
||||
assert WorkspaceUsers.workspace_user_permissions(workspace_one, new_user)
|
||||
assert not WorkspaceUsers.workspace_user_permissions(workspace_two, new_user)
|
||||
assert WorkspaceRoles.workspace_role_permissions(workspace_one, new_user)
|
||||
assert not WorkspaceRoles.workspace_role_permissions(workspace_two, new_user)
|
||||
|
@@ -3,7 +3,7 @@ from uuid import uuid4
|
||||
|
||||
from atst.domain.exceptions import NotFoundError, UnauthorizedError
|
||||
from atst.domain.workspaces import Workspaces
|
||||
from atst.domain.workspace_users import WorkspaceUsers
|
||||
from atst.domain.workspace_roles import WorkspaceRoles
|
||||
from atst.domain.projects import Projects
|
||||
from atst.domain.environments import Environments
|
||||
from atst.models.workspace_role import Status as WorkspaceRoleStatus
|
||||
@@ -75,13 +75,13 @@ def test_get_for_update_projects_allows_owner(workspace, workspace_owner):
|
||||
|
||||
def test_get_for_update_projects_blocks_developer(workspace):
|
||||
developer = UserFactory.create()
|
||||
WorkspaceUsers.add(developer, workspace.id, "developer")
|
||||
WorkspaceRoles.add(developer, workspace.id, "developer")
|
||||
|
||||
with pytest.raises(UnauthorizedError):
|
||||
Workspaces.get_for_update_projects(developer, workspace.id)
|
||||
|
||||
|
||||
def test_can_create_workspace_user(workspace, workspace_owner):
|
||||
def test_can_create_workspace_role(workspace, workspace_owner):
|
||||
user_data = {
|
||||
"first_name": "New",
|
||||
"last_name": "User",
|
||||
@@ -111,7 +111,7 @@ def test_can_add_existing_user_to_workspace(workspace, workspace_owner):
|
||||
assert not new_member.user.provisional
|
||||
|
||||
|
||||
def test_need_permission_to_create_workspace_user(workspace, workspace_owner):
|
||||
def test_need_permission_to_create_workspace_role(workspace, workspace_owner):
|
||||
random_user = UserFactory.create()
|
||||
|
||||
user_data = {
|
||||
@@ -126,7 +126,7 @@ def test_need_permission_to_create_workspace_user(workspace, workspace_owner):
|
||||
Workspaces.create_member(random_user, workspace, user_data)
|
||||
|
||||
|
||||
def test_update_workspace_user_role(workspace, workspace_owner):
|
||||
def test_update_workspace_role_role(workspace, workspace_owner):
|
||||
user_data = {
|
||||
"first_name": "New",
|
||||
"last_name": "User",
|
||||
@@ -141,10 +141,10 @@ def test_update_workspace_user_role(workspace, workspace_owner):
|
||||
workspace_owner, workspace, member, role_name
|
||||
)
|
||||
assert updated_member.workspace == workspace
|
||||
assert updated_member.role == role_name
|
||||
assert updated_member.role_name == role_name
|
||||
|
||||
|
||||
def test_need_permission_to_update_workspace_user_role(workspace, workspace_owner):
|
||||
def test_need_permission_to_update_workspace_role_role(workspace, workspace_owner):
|
||||
random_user = UserFactory.create()
|
||||
user_data = {
|
||||
"first_name": "New",
|
||||
|
@@ -3,7 +3,7 @@ import datetime
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.workspaces import Workspaces
|
||||
from atst.domain.projects import Projects
|
||||
from atst.domain.workspace_users import WorkspaceUsers
|
||||
from atst.domain.workspace_roles import WorkspaceRoles
|
||||
from atst.models.workspace_role import Status
|
||||
from atst.models.invitation import Status as InvitationStatus
|
||||
from tests.factories import (
|
||||
@@ -25,9 +25,9 @@ def test_has_no_environment_roles():
|
||||
}
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
workspace_user = Workspaces.create_member(owner, workspace, developer_data)
|
||||
workspace_role = Workspaces.create_member(owner, workspace, developer_data)
|
||||
|
||||
assert not workspace_user.has_environment_roles
|
||||
assert not workspace_role.has_environment_roles
|
||||
|
||||
|
||||
def test_has_environment_roles():
|
||||
@@ -41,12 +41,12 @@ def test_has_environment_roles():
|
||||
}
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
workspace_user = Workspaces.create_member(owner, workspace, developer_data)
|
||||
workspace_role = Workspaces.create_member(owner, workspace, developer_data)
|
||||
project = Projects.create(
|
||||
owner, workspace, "my test project", "It's mine.", ["dev", "staging", "prod"]
|
||||
)
|
||||
Environments.add_member(project.environments[0], workspace_user.user, "developer")
|
||||
assert workspace_user.has_environment_roles
|
||||
Environments.add_member(project.environments[0], workspace_role.user, "developer")
|
||||
assert workspace_role.has_environment_roles
|
||||
|
||||
|
||||
def test_role_displayname():
|
||||
@@ -60,9 +60,9 @@ def test_role_displayname():
|
||||
}
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
workspace_user = Workspaces.create_member(owner, workspace, developer_data)
|
||||
workspace_role = Workspaces.create_member(owner, workspace, developer_data)
|
||||
|
||||
assert workspace_user.role_displayname == "Developer"
|
||||
assert workspace_role.role_displayname == "Developer"
|
||||
|
||||
|
||||
def test_status_when_member_is_active():
|
||||
|
@@ -8,11 +8,11 @@ from tests.factories import (
|
||||
InvitationFactory,
|
||||
)
|
||||
from atst.domain.workspaces import Workspaces
|
||||
from atst.domain.workspace_users import WorkspaceUsers
|
||||
from atst.domain.workspace_roles import WorkspaceRoles
|
||||
from atst.domain.projects import Projects
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.models.workspace_user import WorkspaceUser
|
||||
from atst.models.workspace_role import WorkspaceRole
|
||||
from atst.models.workspace_role import Status as WorkspaceRoleStatus
|
||||
from atst.models.invitation import Status as InvitationStatus
|
||||
from atst.queue import queue
|
||||
@@ -202,7 +202,7 @@ def test_permissions_for_view_member(client, user_session):
|
||||
user = UserFactory.create()
|
||||
workspace = WorkspaceFactory.create()
|
||||
Workspaces._create_workspace_role(user, workspace, "developer")
|
||||
member = WorkspaceUsers.add(user, workspace.id, "developer")
|
||||
member = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
user_session(user)
|
||||
response = client.post(
|
||||
url_for("workspaces.view_member", workspace_id=workspace.id, member_id=user.id),
|
||||
@@ -214,7 +214,7 @@ def test_permissions_for_view_member(client, user_session):
|
||||
def test_update_member_workspace_role(client, user_session):
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
member = WorkspaceUsers.add(user, workspace.id, "developer")
|
||||
member = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
user_session(workspace.owner)
|
||||
response = client.post(
|
||||
url_for(
|
||||
@@ -224,13 +224,13 @@ def test_update_member_workspace_role(client, user_session):
|
||||
follow_redirects=True,
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert member.role == "security_auditor"
|
||||
assert member.role_name == "security_auditor"
|
||||
|
||||
|
||||
def test_update_member_workspace_role_with_no_data(client, user_session):
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
member = WorkspaceUsers.add(user, workspace.id, "developer")
|
||||
member = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
user_session(workspace.owner)
|
||||
response = client.post(
|
||||
url_for(
|
||||
@@ -240,13 +240,13 @@ def test_update_member_workspace_role_with_no_data(client, user_session):
|
||||
follow_redirects=True,
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert member.role == "developer"
|
||||
assert member.role_name == "developer"
|
||||
|
||||
|
||||
def test_update_member_environment_role(client, user_session):
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
member = WorkspaceUsers.add(user, workspace.id, "developer")
|
||||
member = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
project = Projects.create(
|
||||
workspace.owner,
|
||||
workspace,
|
||||
@@ -278,7 +278,7 @@ def test_update_member_environment_role(client, user_session):
|
||||
def test_update_member_environment_role_with_no_data(client, user_session):
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
member = WorkspaceUsers.add(user, workspace.id, "developer")
|
||||
member = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
project = Projects.create(
|
||||
workspace.owner,
|
||||
workspace,
|
||||
|
Reference in New Issue
Block a user