Merge pull request #817 from dod-ccpo/delete-user-from-application

Delete an application member
This commit is contained in:
George Drummond
2019-05-14 15:45:32 -04:00
committed by GitHub
12 changed files with 171 additions and 12 deletions

View File

@@ -2,16 +2,19 @@ import pytest
from uuid import uuid4
from atst.models import CSPRole, ApplicationRoleStatus
from atst.domain.application_roles import ApplicationRoles
from atst.domain.applications import Applications
from atst.domain.permission_sets import PermissionSets
from atst.domain.environment_roles import EnvironmentRoles
from atst.domain.exceptions import NotFoundError
from atst.domain.permission_sets import PermissionSets
from tests.factories import (
ApplicationFactory,
ApplicationRoleFactory,
UserFactory,
PortfolioFactory,
EnvironmentFactory,
EnvironmentRoleFactory,
PortfolioFactory,
UserFactory,
)
@@ -155,3 +158,27 @@ def test_for_user():
assert len(portfolio.applications) == 4
user_applications = Applications.for_user(user, portfolio)
assert len(user_applications) == 2
def test_remove_member():
application = ApplicationFactory.create()
user = UserFactory.create()
member_role = ApplicationRoleFactory.create(application=application, user=user)
environment = EnvironmentFactory.create(application=application)
environment_role = EnvironmentRoleFactory.create(user=user, environment=environment)
assert member_role == ApplicationRoles.get(
user_id=user.id, application_id=application.id
)
Applications.remove_member(application=application, user_id=member_role.user.id)
assert (
ApplicationRoles.get(user_id=user.id, application_id=application.id).status
== ApplicationRoleStatus.DISABLED
)
#
# TODO: Why does above raise NotFoundError and this returns None
#
assert EnvironmentRoles.get(user_id=user.id, environment_id=environment.id) == None

View File

@@ -1,4 +1,5 @@
import pytest
import uuid
from flask import url_for
from atst.domain.permission_sets import PermissionSets
@@ -128,3 +129,43 @@ def test_create_member(client, user_session):
assert user.application_roles[0].application == application
assert len(user.environment_roles) == 1
assert user.environment_roles[0].environment == env
def test_remove_member_success(client, user_session):
user = UserFactory.create()
application = ApplicationFactory.create()
application_role = ApplicationRoleFactory.create(application=application, user=user)
user_session(application.portfolio.owner)
response = client.post(
url_for(
"applications.remove_member", application_id=application.id, user_id=user.id
)
)
assert response.status_code == 302
assert response.location == url_for(
"applications.team",
_anchor="application-members",
_external=True,
application_id=application.id,
fragment="application-members",
)
def test_remove_member_failure(client, user_session):
user = UserFactory.create()
application = ApplicationFactory.create()
user_session(application.portfolio.owner)
response = client.post(
url_for(
"applications.remove_member",
application_id=application.id,
user_id=uuid.uuid4(),
)
)
assert response.status_code == 404