Merge pull request #264 from dod-ccpo/view-pe-as-workspace-user
View projects and environments as a workspace user
This commit is contained in:
@@ -4,7 +4,9 @@ from tests.factories import WorkspaceFactory
|
||||
|
||||
def test_create_project_with_multiple_environments():
|
||||
workspace = WorkspaceFactory.create()
|
||||
project = Projects.create(workspace, "My Test Project", "Test", ["dev", "prod"])
|
||||
project = Projects.create(
|
||||
workspace.owner, workspace, "My Test Project", "Test", ["dev", "prod"]
|
||||
)
|
||||
|
||||
assert project.workspace == workspace
|
||||
assert project.name == "My Test Project"
|
||||
|
@@ -4,6 +4,8 @@ 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.projects import Projects
|
||||
from atst.domain.environments import Environments
|
||||
|
||||
from tests.factories import WorkspaceFactory, RequestFactory, UserFactory
|
||||
|
||||
@@ -179,3 +181,59 @@ def test_random_user_cannot_view_workspace_members():
|
||||
|
||||
with pytest.raises(UnauthorizedError):
|
||||
workspace = Workspaces.get_with_members(developer, workspace.id)
|
||||
|
||||
|
||||
def test_scoped_workspace_only_returns_a_users_projects_and_environments():
|
||||
workspace = WorkspaceFactory.create()
|
||||
new_project = Projects.create(
|
||||
workspace.owner,
|
||||
workspace,
|
||||
"My Project",
|
||||
"My project",
|
||||
["dev", "staging", "prod"],
|
||||
)
|
||||
developer = UserFactory.from_atat_role("developer")
|
||||
dev_environment = Environments.add_member(
|
||||
workspace.owner, new_project.environments[0], developer
|
||||
)
|
||||
|
||||
scoped_workspace = Workspaces.get(developer, workspace.id)
|
||||
|
||||
# Should only return the project and environment in which the user has an
|
||||
# environment role.
|
||||
assert scoped_workspace.projects == [new_project]
|
||||
assert scoped_workspace.projects[0].environments == [dev_environment]
|
||||
|
||||
|
||||
def test_scoped_workspace_returns_all_projects_for_workspace_admin():
|
||||
workspace = Workspaces.create(RequestFactory.create())
|
||||
for _ in range(5):
|
||||
Projects.create(
|
||||
workspace.owner,
|
||||
workspace,
|
||||
"My Project",
|
||||
"My project",
|
||||
["dev", "staging", "prod"],
|
||||
)
|
||||
|
||||
admin = Workspaces.add_member(
|
||||
workspace, UserFactory.from_atat_role("default"), "admin"
|
||||
).user
|
||||
scoped_workspace = Workspaces.get(admin, workspace.id)
|
||||
|
||||
assert len(scoped_workspace.projects) == 5
|
||||
assert len(scoped_workspace.projects[0].environments) == 3
|
||||
|
||||
|
||||
def test_scoped_workspace_returns_all_projects_for_workspace_owner():
|
||||
workspace = Workspaces.create(RequestFactory.create())
|
||||
owner = workspace.owner
|
||||
for _ in range(5):
|
||||
Projects.create(
|
||||
owner, workspace, "My Project", "My project", ["dev", "staging", "prod"]
|
||||
)
|
||||
|
||||
scoped_workspace = Workspaces.get(owner, workspace.id)
|
||||
|
||||
assert len(scoped_workspace.projects) == 5
|
||||
assert len(scoped_workspace.projects[0].environments) == 3
|
||||
|
@@ -10,7 +10,7 @@ def test_add_user_to_environment():
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
project = Projects.create(
|
||||
workspace, "my test project", "It's mine.", ["dev", "staging", "prod"]
|
||||
owner, workspace, "my test project", "It's mine.", ["dev", "staging", "prod"]
|
||||
)
|
||||
dev_environment = project.environments[0]
|
||||
|
||||
|
@@ -33,7 +33,7 @@ def test_has_environment_roles():
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
workspace_user = Workspaces.create_member(owner, workspace, developer_data)
|
||||
project = Projects.create(
|
||||
workspace, "my test project", "It's mine.", ["dev", "staging", "prod"]
|
||||
owner, workspace, "my test project", "It's mine.", ["dev", "staging", "prod"]
|
||||
)
|
||||
Environments.add_member(owner, project.environments[0], workspace_user.user)
|
||||
assert workspace_user.has_environment_roles
|
||||
|
Reference in New Issue
Block a user