Delete an application member

This commit is contained in:
George Drummond
2019-05-13 10:14:48 -04:00
parent 547d813970
commit 27a4ef12c6
9 changed files with 167 additions and 9 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,25 @@ 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=member_role.user)
with pytest.raises(NotFoundError):
ApplicationRoles.get(user_id=user.id, application_id=application.id)
#
# 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