Merge pull request #817 from dod-ccpo/delete-user-from-application
Delete an application member
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user