70 lines
2.4 KiB
Python
70 lines
2.4 KiB
Python
from flask import url_for
|
|
|
|
from tests.factories import UserFactory, WorkspaceFactory
|
|
from atst.domain.workspaces import Workspaces
|
|
from atst.models.workspace_user import WorkspaceUser
|
|
|
|
|
|
def test_user_with_permission_has_add_project_link(client, user_session):
|
|
user = UserFactory.create()
|
|
workspace = WorkspaceFactory.create()
|
|
Workspaces._create_workspace_role(user, workspace, "owner")
|
|
|
|
user_session(user)
|
|
response = client.get("/workspaces/{}/projects".format(workspace.id))
|
|
assert (
|
|
'href="/workspaces/{}/projects/new"'.format(workspace.id).encode()
|
|
in response.data
|
|
)
|
|
|
|
|
|
def test_user_without_permission_has_no_add_project_link(client, user_session):
|
|
user = UserFactory.create()
|
|
workspace = WorkspaceFactory.create()
|
|
Workspaces._create_workspace_role(user, workspace, "developer")
|
|
user_session(user)
|
|
response = client.get("/workspaces/{}/projects".format(workspace.id))
|
|
assert (
|
|
'href="/workspaces/{}/projects/new"'.format(workspace.id).encode()
|
|
not in response.data
|
|
)
|
|
|
|
|
|
def test_user_with_permission_has_add_member_link(client, user_session):
|
|
user = UserFactory.create()
|
|
workspace = WorkspaceFactory.create()
|
|
Workspaces._create_workspace_role(user, workspace, "owner")
|
|
|
|
user_session(user)
|
|
response = client.get("/workspaces/{}/members".format(workspace.id))
|
|
assert (
|
|
'href="/workspaces/{}/members/new"'.format(workspace.id).encode()
|
|
in response.data
|
|
)
|
|
|
|
|
|
def test_user_without_permission_has_no_add_member_link(client, user_session):
|
|
user = UserFactory.create()
|
|
workspace = WorkspaceFactory.create()
|
|
Workspaces._create_workspace_role(user, workspace, "developer")
|
|
user_session(user)
|
|
response = client.get("/workspaces/{}/members".format(workspace.id))
|
|
assert (
|
|
'href="/workspaces/{}/members/new"'.format(workspace.id).encode()
|
|
not in response.data
|
|
)
|
|
|
|
|
|
def test_update_workspace_name(client, user_session):
|
|
user = UserFactory.create()
|
|
workspace = WorkspaceFactory.create()
|
|
Workspaces._create_workspace_role(user, workspace, "admin")
|
|
user_session(user)
|
|
response = client.post(
|
|
url_for("workspaces.edit_workspace", workspace_id=workspace.id),
|
|
data={"name": "a cool new name"},
|
|
follow_redirects=True,
|
|
)
|
|
assert response.status_code == 200
|
|
assert workspace.name == "a cool new name"
|