record soft deletion in audit log for applications and environments
This commit is contained in:
parent
b58aef2c6b
commit
0348af7ce7
@ -40,3 +40,12 @@ class Application(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
||||
return "<Application(name='{}', description='{}', portfolio='{}', id='{}')>".format(
|
||||
self.name, self.description, self.portfolio.name, self.id
|
||||
)
|
||||
|
||||
@property
|
||||
def history(self):
|
||||
previous_state = self.get_changes()
|
||||
change_set = {}
|
||||
if "deleted" in previous_state:
|
||||
change_set["deleted"] = previous_state["deleted"]
|
||||
|
||||
return change_set
|
||||
|
@ -46,3 +46,12 @@ class Environment(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
||||
self.application.portfolio.name,
|
||||
self.id,
|
||||
)
|
||||
|
||||
@property
|
||||
def history(self):
|
||||
previous_state = self.get_changes()
|
||||
change_set = {}
|
||||
if "deleted" in previous_state:
|
||||
change_set["deleted"] = previous_state["deleted"]
|
||||
|
||||
return change_set
|
||||
|
@ -1,3 +1,5 @@
|
||||
from atst.models import AuditEvent
|
||||
|
||||
from tests.factories import (
|
||||
ApplicationFactory,
|
||||
ApplicationRoleFactory,
|
||||
@ -21,3 +23,18 @@ def test_application_environments_excludes_deleted():
|
||||
EnvironmentFactory.create(application=app, deleted=True)
|
||||
assert len(app.environments) == 1
|
||||
assert app.environments[0].id == env.id
|
||||
|
||||
|
||||
def test_audit_event_for_application_deletion(session):
|
||||
app = ApplicationFactory.create()
|
||||
app.deleted = True
|
||||
session.add(app)
|
||||
session.commit()
|
||||
|
||||
update_event = (
|
||||
session.query(AuditEvent)
|
||||
.filter(AuditEvent.resource_id == app.id, AuditEvent.action == "update")
|
||||
.one()
|
||||
)
|
||||
assert update_event.changed_state.get("deleted")
|
||||
assert update_event.changed_state["deleted"] == [False, True]
|
||||
|
@ -1,6 +1,13 @@
|
||||
from atst.models import AuditEvent
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.applications import Applications
|
||||
from tests.factories import PortfolioFactory, UserFactory
|
||||
|
||||
from tests.factories import (
|
||||
PortfolioFactory,
|
||||
UserFactory,
|
||||
EnvironmentFactory,
|
||||
ApplicationFactory,
|
||||
)
|
||||
|
||||
|
||||
def test_add_user_to_environment():
|
||||
@ -15,3 +22,20 @@ def test_add_user_to_environment():
|
||||
|
||||
dev_environment = Environments.add_member(dev_environment, developer, "developer")
|
||||
assert developer in dev_environment.users
|
||||
|
||||
|
||||
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)
|
||||
session.commit()
|
||||
|
||||
update_event = (
|
||||
session.query(AuditEvent)
|
||||
.filter(AuditEvent.resource_id == env.id, AuditEvent.action == "update")
|
||||
.one()
|
||||
)
|
||||
assert update_event.changed_state.get("deleted")
|
||||
assert update_event.changed_state["deleted"] == [False, True]
|
||||
|
Loading…
x
Reference in New Issue
Block a user