Revert user deletion job

This commit is contained in:
richard-dds
2019-10-14 16:51:19 -04:00
parent 73a459ea28
commit 1bce0a1f01
10 changed files with 79 additions and 131 deletions

View File

@@ -85,4 +85,4 @@ def test_disable(session):
session.refresh(member_role)
session.refresh(environment_role)
assert member_role.status == ApplicationRoleStatus.DISABLED
assert environment_role.status == EnvironmentRole.Status.PENDING_DELETE
assert environment_role.deleted

View File

@@ -35,15 +35,16 @@ def test_update_env_role():
assert env_role.role == new_role
def test_update_env_role_no_access(session):
def test_update_env_role_no_access():
env_role = EnvironmentRoleFactory.create(role=CSPRole.BASIC_ACCESS.value)
assert Environments.update_env_role(
env_role.environment, env_role.application_role, None
)
session.refresh(env_role)
assert env_role.status == EnvironmentRole.Status.PENDING_DELETE
assert not EnvironmentRoles.get(
env_role.application_role.id, env_role.environment.id
)
def test_update_env_role_no_change():

View File

@@ -1,4 +1,5 @@
from atst.domain.permission_sets import PermissionSets
from atst.domain.environment_roles import EnvironmentRoles
from atst.models.audit_event import AuditEvent
from tests.factories import *
@@ -53,4 +54,4 @@ def test_environment_roles():
environment=environment2, application_role=application_role, deleted=True
)
assert application_role.environment_roles == [environment_role1]
assert not EnvironmentRoles.get_by_user_and_environment(user.id, environment2.id)

View File

@@ -537,6 +537,13 @@ def test_update_member(client, user_session, session):
app_role.has_permission_set(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS)
)
environment_roles = application.roles[0].environment_roles
# make sure that old env role was deleted and there are only 2 env roles
assert len(environment_roles) == 2
# check that the user has roles in the correct envs
assert environment_roles[0].environment in [env, env_2]
assert environment_roles[1].environment in [env, env_2]
def test_revoke_invite(client, user_session):
invite = ApplicationInvitationFactory.create()

View File

@@ -17,8 +17,6 @@ from atst.jobs import (
create_environment,
dispatch_provision_user,
do_provision_user,
do_delete_user,
dispatch_delete_user,
)
from atst.models.utils import claim_for_update
from atst.domain.exceptions import ClaimFailedException
@@ -372,68 +370,3 @@ def test_do_provision_user(csp, session):
)
# I expect that the EnvironmentRole now has a csp_user_id
assert environment_role.csp_user_id
def test_do_delete_user(csp, session):
credentials = MockCloudProvider(())._auth_credentials
provisioned_environment = EnvironmentFactory.create(
cloud_id="cloud_id",
root_user_info={"credentials": credentials},
baseline_info={},
)
environment_role = EnvironmentRoleFactory.create(
environment=provisioned_environment,
status=EnvironmentRole.Status.PENDING_DELETE,
role="my_role",
)
do_delete_user(csp=csp, environment_role_id=environment_role.id)
session.refresh(environment_role)
assert environment_role.status == EnvironmentRole.Status.DELETED
assert environment_role.deleted == True
def test_dispatch_delete_user(csp, session, monkeypatch):
# Given that I have five environment roles:
# (A) one of which has a completed status
# (B) one of which has an environment that has not been provisioned
# (C) one of which is pending, has a provisioned environment but an inactive application role
# (D) one of which is pending, has a provisioned environment and has an active application role
# (E) one of which is pending delete, has a provisioned environment and has an active application role
provisioned_environment = EnvironmentFactory.create(
cloud_id="cloud_id", root_user_info={}, baseline_info={}
)
unprovisioned_environment = EnvironmentFactory.create()
_er_a = EnvironmentRoleFactory.create(
environment=provisioned_environment, status=EnvironmentRole.Status.COMPLETED
)
_er_b = EnvironmentRoleFactory.create(
environment=unprovisioned_environment, status=EnvironmentRole.Status.PENDING
)
_er_c = EnvironmentRoleFactory.create(
environment=unprovisioned_environment,
status=EnvironmentRole.Status.PENDING,
application_role=ApplicationRoleFactory(status=ApplicationRoleStatus.PENDING),
)
_er_d = EnvironmentRoleFactory.create(
environment=unprovisioned_environment,
status=EnvironmentRole.Status.PENDING_DELETE,
application_role=ApplicationRoleFactory(status=ApplicationRoleStatus.PENDING),
)
er_e = EnvironmentRoleFactory.create(
environment=provisioned_environment,
status=EnvironmentRole.Status.PENDING_DELETE,
application_role=ApplicationRoleFactory(status=ApplicationRoleStatus.ACTIVE),
)
mock = Mock()
monkeypatch.setattr("atst.jobs.delete_user", mock)
# When I dispatch the user deletion task
dispatch_delete_user.run()
# I expect it to dispatch only one call, to EnvironmentRole E
mock.delay.assert_called_once_with(environment_role_id=er_e.id)