extend soft delete functionality to app and env roles
This commit is contained in:
@@ -5,6 +5,7 @@ from atst.domain.exceptions import NotFoundError
|
||||
|
||||
from tests.factories import (
|
||||
ApplicationFactory,
|
||||
ApplicationRoleFactory,
|
||||
UserFactory,
|
||||
PortfolioFactory,
|
||||
EnvironmentFactory,
|
||||
@@ -71,17 +72,20 @@ def test_get_excludes_deleted():
|
||||
|
||||
def test_delete_application(session):
|
||||
app = ApplicationFactory.create()
|
||||
app_role = ApplicationRoleFactory.create(user=UserFactory.create(), application=app)
|
||||
env1 = EnvironmentFactory.create(application=app)
|
||||
env2 = EnvironmentFactory.create(application=app)
|
||||
assert not app.deleted
|
||||
assert not env1.deleted
|
||||
assert not env2.deleted
|
||||
assert not app_role.deleted
|
||||
|
||||
Applications.delete(app)
|
||||
|
||||
assert app.deleted
|
||||
assert env1.deleted
|
||||
assert env2.deleted
|
||||
assert app_role.deleted
|
||||
|
||||
# changes are flushed
|
||||
assert not session.dirty
|
||||
|
@@ -10,6 +10,7 @@ from tests.factories import (
|
||||
UserFactory,
|
||||
PortfolioFactory,
|
||||
EnvironmentFactory,
|
||||
EnvironmentRoleFactory,
|
||||
)
|
||||
|
||||
|
||||
@@ -206,13 +207,17 @@ def test_get_excludes_deleted():
|
||||
|
||||
def test_delete_environment(session):
|
||||
env = EnvironmentFactory.create(application=ApplicationFactory.create())
|
||||
env_role = EnvironmentRoleFactory.create(user=UserFactory.create(), environment=env)
|
||||
assert not env.deleted
|
||||
assert not env_role.deleted
|
||||
Environments.delete(env)
|
||||
assert env.deleted
|
||||
assert env_role.deleted
|
||||
# did not flush
|
||||
assert env in session.dirty
|
||||
assert session.dirty
|
||||
|
||||
Environments.delete(env, commit=True)
|
||||
assert env.deleted
|
||||
assert env_role.deleted
|
||||
# flushed the change
|
||||
assert not session.dirty
|
||||
|
@@ -25,8 +25,6 @@ def test_add_user_to_environment():
|
||||
|
||||
|
||||
def test_audit_event_for_environment_deletion(session):
|
||||
EnvironmentFactory._meta.sqlalchemy_session_persistence = "flush"
|
||||
|
||||
env = EnvironmentFactory.create(application=ApplicationFactory.create())
|
||||
env.deleted = True
|
||||
session.add(env)
|
||||
@@ -38,4 +36,6 @@ def test_audit_event_for_environment_deletion(session):
|
||||
.one()
|
||||
)
|
||||
assert update_event.changed_state.get("deleted")
|
||||
assert update_event.changed_state["deleted"] == [False, True]
|
||||
before, after = update_event.changed_state["deleted"]
|
||||
assert not before
|
||||
assert after
|
||||
|
@@ -3,7 +3,7 @@ from sqlalchemy.exc import InternalError
|
||||
|
||||
from atst.models.user import User
|
||||
|
||||
from tests.factories import UserFactory
|
||||
from tests.factories import UserFactory, ApplicationFactory, ApplicationRoleFactory
|
||||
|
||||
|
||||
def test_profile_complete_with_all_info():
|
||||
@@ -24,3 +24,16 @@ def test_cannot_update_dod_id(session):
|
||||
session.add(user)
|
||||
with pytest.raises(InternalError):
|
||||
session.commit()
|
||||
|
||||
|
||||
def test_deleted_application_roles_are_ignored(session):
|
||||
user = UserFactory.create()
|
||||
app = ApplicationFactory.create()
|
||||
app_role = ApplicationRoleFactory.create(user=user, application=app)
|
||||
assert len(user.application_roles) == 1
|
||||
|
||||
app_role.deleted = True
|
||||
session.add(app_role)
|
||||
session.commit()
|
||||
|
||||
assert len(user.application_roles) == 0
|
||||
|
Reference in New Issue
Block a user