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(
|
return "<Application(name='{}', description='{}', portfolio='{}', id='{}')>".format(
|
||||||
self.name, self.description, self.portfolio.name, self.id
|
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.application.portfolio.name,
|
||||||
self.id,
|
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 (
|
from tests.factories import (
|
||||||
ApplicationFactory,
|
ApplicationFactory,
|
||||||
ApplicationRoleFactory,
|
ApplicationRoleFactory,
|
||||||
@ -21,3 +23,18 @@ def test_application_environments_excludes_deleted():
|
|||||||
EnvironmentFactory.create(application=app, deleted=True)
|
EnvironmentFactory.create(application=app, deleted=True)
|
||||||
assert len(app.environments) == 1
|
assert len(app.environments) == 1
|
||||||
assert app.environments[0].id == env.id
|
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.environments import Environments
|
||||||
from atst.domain.applications import Applications
|
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():
|
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")
|
dev_environment = Environments.add_member(dev_environment, developer, "developer")
|
||||||
assert developer in dev_environment.users
|
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