remove accepted column from workspace_roles

This commit is contained in:
dandds
2018-10-26 16:07:10 -04:00
parent 5c5f9c6c9c
commit b81a831c85
15 changed files with 148 additions and 49 deletions

View File

@@ -6,8 +6,9 @@ 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 atst.models.invitation import Status as InvitationStatus
from tests.factories import RequestFactory, UserFactory
from tests.factories import RequestFactory, UserFactory, InvitationFactory
@pytest.fixture(scope="function")
@@ -219,7 +220,12 @@ def test_scoped_workspace_returns_all_projects_for_workspace_admin(
admin = Workspaces.add_member(
workspace, UserFactory.from_atat_role("default"), "admin"
).user
Workspaces.accept_workspace_role(admin, workspace)
InvitationFactory.create(
user=admin,
inviter=workspace.owner,
workspace=workspace,
status=InvitationStatus.ACCEPTED,
)
scoped_workspace = Workspaces.get(admin, workspace.id)
assert len(scoped_workspace.projects) == 5
@@ -248,7 +254,12 @@ def test_for_user_returns_assigned_workspaces_for_user(workspace, workspace_owne
bob = UserFactory.from_atat_role("default")
Workspaces.add_member(workspace, bob, "developer")
Workspaces.create(RequestFactory.create())
Workspaces.accept_workspace_role(bob, workspace)
InvitationFactory.create(
user=bob,
inviter=workspace.owner,
workspace=workspace,
status=InvitationStatus.ACCEPTED,
)
bobs_workspaces = Workspaces.for_user(bob)
@@ -275,12 +286,23 @@ def test_for_user_returns_all_workspaces_for_ccpo(workspace, workspace_owner):
def test_get_for_update_information():
workspace_owner = UserFactory.create()
workspace = Workspaces.create(RequestFactory.create(creator=workspace_owner))
InvitationFactory.create(
user=workspace_owner,
inviter=workspace_owner,
workspace=workspace,
status=InvitationStatus.ACCEPTED,
)
owner_ws = Workspaces.get_for_update_information(workspace_owner, workspace.id)
assert workspace == owner_ws
admin = UserFactory.create()
Workspaces.add_member(workspace, admin, "admin")
Workspaces.accept_workspace_role(admin, workspace)
InvitationFactory.create(
user=admin,
inviter=workspace_owner,
workspace=workspace,
status=InvitationStatus.ACCEPTED,
)
admin_ws = Workspaces.get_for_update_information(admin, workspace.id)
assert workspace == admin_ws

View File

@@ -257,7 +257,13 @@ class WorkspaceFactory(Base):
workspace.request.creator = owner
WorkspaceRoleFactory.create(
workspace=workspace, role=Roles.get("owner"), user=owner, accepted=True
workspace=workspace, role=Roles.get("owner"), user=owner
)
InvitationFactory.create(
user=owner,
inviter=owner,
workspace=workspace,
status=InvitationStatus.ACCEPTED,
)
for member in members:
@@ -275,7 +281,12 @@ class WorkspaceFactory(Base):
user = UserFactory.create()
workspace = WorkspaceFactory.create()
Workspaces._create_workspace_role(user, workspace, role)
Workspaces.accept_workspace_role(user, workspace)
InvitationFactory.create(
user=user,
inviter=workspace.owner,
workspace=workspace,
status=InvitationStatus.ACCEPTED,
)
return user, workspace

View File

@@ -1,12 +1,23 @@
from tests.factories import UserFactory, WorkspaceFactory, RequestFactory
from tests.factories import (
UserFactory,
WorkspaceFactory,
RequestFactory,
InvitationFactory,
)
from atst.domain.workspaces import Workspaces
from atst.models.invitation import Status as InvitationStatus
def test_user_with_workspaces_has_workspaces_nav(client, user_session):
user = UserFactory.create()
workspace = WorkspaceFactory.create()
Workspaces._create_workspace_role(user, workspace, "developer")
Workspaces.accept_workspace_role(user, workspace)
InvitationFactory.create(
user=user,
inviter=workspace.owner,
workspace=workspace,
status=InvitationStatus.ACCEPTED,
)
user_session(user)
response = client.get("/home", follow_redirects=True)

View File

@@ -341,11 +341,16 @@ def test_new_member_accept_invalid_invite(client, user_session):
def test_user_who_has_not_accepted_workspace_invite_cannot_view(client, user_session):
user = UserFactory.create()
workspace = WorkspaceFactory.create()
Workspaces.create_member(
workspace.owner,
workspace,
{"workspace_role": "developer", **user.to_dictionary()},
Invitations.create_for_owner(workspace, workspace.owner)
# create user in workspace with invitation
user_session(workspace.owner)
response = client.post(
url_for("workspaces.create_member", workspace_id=workspace.id),
data={"workspace_role": "developer", **user.to_dictionary()},
)
# user tries to view workspace before accepting invitation
user_session(user)
response = client.get("/workspaces/{}/projects".format(workspace.id))
assert response.status_code == 404