Merge pull request #427 from dod-ccpo/remove-workspace-users

Consolidate WorkspaceUser into WorkspaceRole
This commit is contained in:
richard-dds
2018-11-05 15:49:33 -05:00
committed by GitHub
16 changed files with 127 additions and 173 deletions

View File

@@ -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"

View File

@@ -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)

View File

@@ -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",

View File

@@ -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():

View File

@@ -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,