changes to increase test branch coverage
This commit is contained in:
parent
0a2e5607b9
commit
23584da57b
@ -1,6 +1,5 @@
|
||||
from sqlalchemy import String, Column
|
||||
from sqlalchemy.dialects.postgresql import ARRAY
|
||||
from sqlalchemy.orm.attributes import flag_modified
|
||||
|
||||
from atst.models import Base, types, mixins
|
||||
|
||||
@ -14,18 +13,6 @@ class PermissionSet(Base, mixins.TimestampsMixin):
|
||||
description = Column(String, nullable=False)
|
||||
permissions = Column(ARRAY(String), index=True, server_default="{}", nullable=False)
|
||||
|
||||
def add_permission(self, permission):
|
||||
perms_set = set(self.permissions)
|
||||
perms_set.add(permission)
|
||||
self.permissions = list(perms_set)
|
||||
flag_modified(self, "permissions")
|
||||
|
||||
def remove_permission(self, permission):
|
||||
perms_set = set(self.permissions)
|
||||
perms_set.discard(permission)
|
||||
self.permissions = list(perms_set)
|
||||
flag_modified(self, "permissions")
|
||||
|
||||
def __repr__(self):
|
||||
return "<PermissionSet(name='{}', description='{}', permissions='{}', id='{}')>".format(
|
||||
self.name, self.description, self.permissions, self.id
|
||||
|
@ -162,6 +162,26 @@ def test_random_user_cannot_view_portfolio_members(portfolio):
|
||||
portfolio = Portfolios.get_with_members(developer, portfolio.id)
|
||||
|
||||
|
||||
def test_scoped_portfolio_for_admin_missing_view_apps_perms(portfolio_owner, portfolio):
|
||||
Applications.create(
|
||||
portfolio_owner,
|
||||
portfolio,
|
||||
"My Application 2",
|
||||
"My application 2",
|
||||
["dev", "staging", "prod"],
|
||||
)
|
||||
restricted_admin = UserFactory.create()
|
||||
PortfolioRoleFactory.create(
|
||||
portfolio=portfolio,
|
||||
user=restricted_admin,
|
||||
permission_sets=[PermissionSets.get(PermissionSets.VIEW_PORTFOLIO)],
|
||||
)
|
||||
scoped_portfolio = Portfolios.get(restricted_admin, portfolio.id)
|
||||
assert scoped_portfolio.id == portfolio.id
|
||||
assert len(portfolio.applications) == 1
|
||||
assert len(scoped_portfolio.applications) == 0
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="should be reworked pending application member changes")
|
||||
def test_scoped_portfolio_only_returns_a_users_applications_and_environments(
|
||||
portfolio, portfolio_owner
|
||||
|
@ -21,7 +21,7 @@ from tests.factories import (
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
|
||||
|
||||
def test_has_no_ws_role_history(session):
|
||||
def test_has_no_portfolio_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
@ -39,7 +39,7 @@ def test_has_no_ws_role_history(session):
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="need to update audit log permission set handling")
|
||||
def test_has_ws_role_history(session):
|
||||
def test_has_portfolio_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
@ -62,7 +62,7 @@ def test_has_ws_role_history(session):
|
||||
assert changed_events[0].changed_state["role"][1] == "admin"
|
||||
|
||||
|
||||
def test_has_ws_status_history(session):
|
||||
def test_has_portfolio_status_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
@ -189,6 +189,11 @@ def test_status_when_member_is_active():
|
||||
assert portfolio_role.display_status == "Active"
|
||||
|
||||
|
||||
def test_status_when_member_is_disabled():
|
||||
portfolio_role = PortfolioRoleFactory.create(status=Status.DISABLED)
|
||||
assert portfolio_role.display_status == "Disabled"
|
||||
|
||||
|
||||
def test_status_when_invitation_has_been_rejected_for_expirations():
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
@ -213,6 +218,18 @@ def test_status_when_invitation_has_been_rejected_for_wrong_user():
|
||||
assert portfolio_role.display_status == "Error on invite"
|
||||
|
||||
|
||||
def test_status_when_invitation_has_been_revoked():
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
|
||||
)
|
||||
invitation = InvitationFactory.create(
|
||||
portfolio_role=portfolio_role, status=InvitationStatus.REVOKED
|
||||
)
|
||||
assert portfolio_role.display_status == "Invite revoked"
|
||||
|
||||
|
||||
def test_status_when_invitation_is_expired():
|
||||
portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
@ -340,3 +340,15 @@ def test_review_task_order_form(client, user_session, task_order):
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_update_task_order_clears_unnecessary_other_responses():
|
||||
user = UserFactory.create()
|
||||
to_data = TaskOrderFactory.dictionary()
|
||||
to_data["complexity"] = ["storage"]
|
||||
to_data["complexity_other"] = "something else"
|
||||
to_data["dev_team"] = ["civilians"]
|
||||
to_data["dev_team_other"] = "something else"
|
||||
workflow = UpdateTaskOrderWorkflow(user, to_data)
|
||||
assert workflow.task_order_form_data["complexity_other"] is None
|
||||
assert workflow.task_order_form_data["dev_team_other"] is None
|
||||
|
Loading…
x
Reference in New Issue
Block a user