workspace -> portfolio everywhere
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.workspaces import Workspaces
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.domain.applications import Applications
|
||||
from tests.factories import RequestFactory, UserFactory
|
||||
|
||||
@@ -8,10 +8,10 @@ def test_add_user_to_environment():
|
||||
owner = UserFactory.create()
|
||||
developer = UserFactory.from_atat_role("developer")
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
application = Applications.create(
|
||||
owner,
|
||||
workspace,
|
||||
portfolio,
|
||||
"my test application",
|
||||
"It's mine.",
|
||||
["dev", "staging", "prod"],
|
||||
|
@@ -2,44 +2,44 @@ import pytest
|
||||
import datetime
|
||||
|
||||
from atst.models.invitation import Invitation, Status
|
||||
from atst.models.workspace_role import Status as WorkspaceRoleStatus
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
|
||||
from tests.factories import (
|
||||
InvitationFactory,
|
||||
WorkspaceFactory,
|
||||
PortfolioFactory,
|
||||
UserFactory,
|
||||
WorkspaceRoleFactory,
|
||||
PortfolioRoleFactory,
|
||||
)
|
||||
|
||||
|
||||
def test_expired_invite_is_not_revokable():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
ws_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invite = InvitationFactory.create(
|
||||
expiration_time=datetime.datetime.now() - datetime.timedelta(minutes=60),
|
||||
workspace_role=ws_role,
|
||||
portfolio_role=ws_role,
|
||||
)
|
||||
assert not invite.is_revokable
|
||||
|
||||
|
||||
def test_unexpired_invite_is_revokable():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
ws_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invite = InvitationFactory.create(workspace_role=ws_role)
|
||||
invite = InvitationFactory.create(portfolio_role=ws_role)
|
||||
assert invite.is_revokable
|
||||
|
||||
|
||||
def test_invite_is_not_revokable_if_invite_is_not_pending():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
ws_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invite = InvitationFactory.create(workspace_role=ws_role, status=Status.ACCEPTED)
|
||||
invite = InvitationFactory.create(portfolio_role=ws_role, status=Status.ACCEPTED)
|
||||
assert not invite.is_revokable
|
||||
|
@@ -1,36 +1,36 @@
|
||||
import datetime
|
||||
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.workspaces import Workspaces
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.domain.applications import Applications
|
||||
from atst.models.workspace_role import Status
|
||||
from atst.models.portfolio_role import Status
|
||||
from atst.models.role import Role
|
||||
from atst.models.invitation import Status as InvitationStatus
|
||||
from atst.models.audit_event import AuditEvent
|
||||
from atst.models.workspace_role import Status as WorkspaceRoleStatus
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from tests.factories import (
|
||||
RequestFactory,
|
||||
UserFactory,
|
||||
InvitationFactory,
|
||||
WorkspaceRoleFactory,
|
||||
PortfolioRoleFactory,
|
||||
EnvironmentFactory,
|
||||
EnvironmentRoleFactory,
|
||||
ApplicationFactory,
|
||||
WorkspaceFactory,
|
||||
PortfolioFactory,
|
||||
)
|
||||
from atst.domain.workspace_roles import WorkspaceRoles
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
|
||||
|
||||
def test_has_no_ws_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
workspace_role = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio_role = PortfolioRoles.add(user, portfolio.id, "developer")
|
||||
create_event = (
|
||||
session.query(AuditEvent)
|
||||
.filter(
|
||||
AuditEvent.resource_id == workspace_role.id, AuditEvent.action == "create"
|
||||
AuditEvent.resource_id == portfolio_role.id, AuditEvent.action == "create"
|
||||
)
|
||||
.one()
|
||||
)
|
||||
@@ -42,19 +42,19 @@ def test_has_ws_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
role = session.query(Role).filter(Role.name == "developer").one()
|
||||
# in order to get the history, we don't want the WorkspaceRoleFactory
|
||||
# in order to get the history, we don't want the PortfolioRoleFactory
|
||||
# to commit after create()
|
||||
WorkspaceRoleFactory._meta.sqlalchemy_session_persistence = "flush"
|
||||
workspace_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, role=role
|
||||
PortfolioRoleFactory._meta.sqlalchemy_session_persistence = "flush"
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, role=role
|
||||
)
|
||||
WorkspaceRoles.update_role(workspace_role, "admin")
|
||||
PortfolioRoles.update_role(portfolio_role, "admin")
|
||||
changed_events = (
|
||||
session.query(AuditEvent)
|
||||
.filter(
|
||||
AuditEvent.resource_id == workspace_role.id, AuditEvent.action == "update"
|
||||
AuditEvent.resource_id == portfolio_role.id, AuditEvent.action == "update"
|
||||
)
|
||||
.all()
|
||||
)
|
||||
@@ -67,16 +67,16 @@ def test_has_ws_status_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
# in order to get the history, we don't want the WorkspaceRoleFactory
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
# in order to get the history, we don't want the PortfolioRoleFactory
|
||||
# to commit after create()
|
||||
WorkspaceRoleFactory._meta.sqlalchemy_session_persistence = "flush"
|
||||
workspace_role = WorkspaceRoleFactory.create(workspace=workspace, user=user)
|
||||
WorkspaceRoles.enable(workspace_role)
|
||||
PortfolioRoleFactory._meta.sqlalchemy_session_persistence = "flush"
|
||||
portfolio_role = PortfolioRoleFactory.create(portfolio=portfolio, user=user)
|
||||
PortfolioRoles.enable(portfolio_role)
|
||||
changed_events = (
|
||||
session.query(AuditEvent)
|
||||
.filter(
|
||||
AuditEvent.resource_id == workspace_role.id, AuditEvent.action == "update"
|
||||
AuditEvent.resource_id == portfolio_role.id, AuditEvent.action == "update"
|
||||
)
|
||||
.all()
|
||||
)
|
||||
@@ -89,8 +89,8 @@ def test_has_ws_status_history(session):
|
||||
def test_has_no_env_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
application = ApplicationFactory.create(workspace=workspace)
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
application = ApplicationFactory.create(portfolio=portfolio)
|
||||
environment = EnvironmentFactory.create(
|
||||
application=application, name="new environment!"
|
||||
)
|
||||
@@ -110,9 +110,9 @@ def test_has_no_env_role_history(session):
|
||||
def test_has_env_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
workspace_role = WorkspaceRoleFactory.create(workspace=workspace, user=user)
|
||||
application = ApplicationFactory.create(workspace=workspace)
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio_role = PortfolioRoleFactory.create(portfolio=portfolio, user=user)
|
||||
application = ApplicationFactory.create(portfolio=portfolio)
|
||||
environment = EnvironmentFactory.create(
|
||||
application=application, name="new environment!"
|
||||
)
|
||||
@@ -121,7 +121,7 @@ def test_has_env_role_history(session):
|
||||
user=user, environment=environment, role="developer"
|
||||
)
|
||||
Environments.update_environment_roles(
|
||||
owner, workspace, workspace_role, [{"role": "admin", "id": environment.id}]
|
||||
owner, portfolio, portfolio_role, [{"role": "admin", "id": environment.id}]
|
||||
)
|
||||
changed_events = (
|
||||
session.query(AuditEvent)
|
||||
@@ -137,11 +137,11 @@ def test_event_details():
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
workspace_role = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio_role = PortfolioRoles.add(user, portfolio.id, "developer")
|
||||
|
||||
assert workspace_role.event_details["updated_user_name"] == user.displayname
|
||||
assert workspace_role.event_details["updated_user_id"] == str(user.id)
|
||||
assert portfolio_role.event_details["updated_user_name"] == user.displayname
|
||||
assert portfolio_role.event_details["updated_user_id"] == str(user.id)
|
||||
|
||||
|
||||
def test_has_no_environment_roles():
|
||||
@@ -151,13 +151,13 @@ def test_has_no_environment_roles():
|
||||
"first_name": "Test",
|
||||
"last_name": "User",
|
||||
"email": "test.user@mail.com",
|
||||
"workspace_role": "developer",
|
||||
"portfolio_role": "developer",
|
||||
}
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
workspace_role = Workspaces.create_member(owner, workspace, developer_data)
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio_role = Portfolios.create_member(owner, portfolio, developer_data)
|
||||
|
||||
assert not workspace_role.has_environment_roles
|
||||
assert not portfolio_role.has_environment_roles
|
||||
|
||||
|
||||
def test_has_environment_roles():
|
||||
@@ -167,22 +167,22 @@ def test_has_environment_roles():
|
||||
"first_name": "Test",
|
||||
"last_name": "User",
|
||||
"email": "test.user@mail.com",
|
||||
"workspace_role": "developer",
|
||||
"portfolio_role": "developer",
|
||||
}
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
workspace_role = Workspaces.create_member(owner, workspace, developer_data)
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio_role = Portfolios.create_member(owner, portfolio, developer_data)
|
||||
application = Applications.create(
|
||||
owner,
|
||||
workspace,
|
||||
portfolio,
|
||||
"my test application",
|
||||
"It's mine.",
|
||||
["dev", "staging", "prod"],
|
||||
)
|
||||
Environments.add_member(
|
||||
application.environments[0], workspace_role.user, "developer"
|
||||
application.environments[0], portfolio_role.user, "developer"
|
||||
)
|
||||
assert workspace_role.has_environment_roles
|
||||
assert portfolio_role.has_environment_roles
|
||||
|
||||
|
||||
def test_role_displayname():
|
||||
@@ -192,84 +192,84 @@ def test_role_displayname():
|
||||
"first_name": "Test",
|
||||
"last_name": "User",
|
||||
"email": "test.user@mail.com",
|
||||
"workspace_role": "developer",
|
||||
"portfolio_role": "developer",
|
||||
}
|
||||
|
||||
workspace = Workspaces.create_from_request(RequestFactory.create(creator=owner))
|
||||
workspace_role = Workspaces.create_member(owner, workspace, developer_data)
|
||||
portfolio = Portfolios.create_from_request(RequestFactory.create(creator=owner))
|
||||
portfolio_role = Portfolios.create_member(owner, portfolio, developer_data)
|
||||
|
||||
assert workspace_role.role_displayname == "Developer"
|
||||
assert portfolio_role.role_displayname == "Developer"
|
||||
|
||||
|
||||
def test_status_when_member_is_active():
|
||||
workspace_role = WorkspaceRoleFactory.create(status=Status.ACTIVE)
|
||||
assert workspace_role.display_status == "Active"
|
||||
portfolio_role = PortfolioRoleFactory.create(status=Status.ACTIVE)
|
||||
assert portfolio_role.display_status == "Active"
|
||||
|
||||
|
||||
def test_status_when_invitation_has_been_rejected_for_expirations():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invitation = InvitationFactory.create(
|
||||
workspace_role=workspace_role, status=InvitationStatus.REJECTED_EXPIRED
|
||||
portfolio_role=portfolio_role, status=InvitationStatus.REJECTED_EXPIRED
|
||||
)
|
||||
assert workspace_role.display_status == "Invite expired"
|
||||
assert portfolio_role.display_status == "Invite expired"
|
||||
|
||||
|
||||
def test_status_when_invitation_has_been_rejected_for_wrong_user():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invitation = InvitationFactory.create(
|
||||
workspace_role=workspace_role, status=InvitationStatus.REJECTED_WRONG_USER
|
||||
portfolio_role=portfolio_role, status=InvitationStatus.REJECTED_WRONG_USER
|
||||
)
|
||||
assert workspace_role.display_status == "Error on invite"
|
||||
assert portfolio_role.display_status == "Error on invite"
|
||||
|
||||
|
||||
def test_status_when_invitation_is_expired():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invitation = InvitationFactory.create(
|
||||
workspace_role=workspace_role,
|
||||
portfolio_role=portfolio_role,
|
||||
status=InvitationStatus.PENDING,
|
||||
expiration_time=datetime.datetime.now() - datetime.timedelta(seconds=1),
|
||||
)
|
||||
assert workspace_role.display_status == "Invite expired"
|
||||
assert portfolio_role.display_status == "Invite expired"
|
||||
|
||||
|
||||
def test_can_not_resend_invitation_if_active():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invitation = InvitationFactory.create(
|
||||
workspace_role=workspace_role, status=InvitationStatus.ACCEPTED
|
||||
portfolio_role=portfolio_role, status=InvitationStatus.ACCEPTED
|
||||
)
|
||||
assert not workspace_role.can_resend_invitation
|
||||
assert not portfolio_role.can_resend_invitation
|
||||
|
||||
|
||||
def test_can_resend_invitation_if_expired():
|
||||
workspace = WorkspaceFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace_role = WorkspaceRoleFactory.create(
|
||||
workspace=workspace, user=user, status=WorkspaceRoleStatus.PENDING
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invitation = InvitationFactory.create(
|
||||
workspace_role=workspace_role, status=InvitationStatus.REJECTED_EXPIRED
|
||||
portfolio_role=portfolio_role, status=InvitationStatus.REJECTED_EXPIRED
|
||||
)
|
||||
assert workspace_role.can_resend_invitation
|
||||
assert portfolio_role.can_resend_invitation
|
||||
|
||||
|
||||
def test_can_list_all_environments():
|
||||
workspace = WorkspaceFactory.create(
|
||||
portfolio = PortfolioFactory.create(
|
||||
applications=[
|
||||
{
|
||||
"name": "application1",
|
||||
@@ -298,4 +298,4 @@ def test_can_list_all_environments():
|
||||
]
|
||||
)
|
||||
|
||||
assert len(workspace.all_environments) == 9
|
||||
assert len(portfolio.all_environments) == 9
|
Reference in New Issue
Block a user