changes to increase test branch coverage

This commit is contained in:
dandds 2019-03-15 14:41:24 -04:00
parent 0a2e5607b9
commit 23584da57b
4 changed files with 52 additions and 16 deletions

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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