Skip to content

Commit

Permalink
Fix audit log messages not written for overrides (Flagsmith#1992)
Browse files Browse the repository at this point in the history
* Ensure override audit logs are written

* Add unit test
  • Loading branch information
matthewelwell authored Mar 3, 2023
1 parent 1d95f3e commit 5d3e6c9
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
10 changes: 5 additions & 5 deletions api/features/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -809,16 +809,16 @@ def get_create_log_message(self, history_instance) -> typing.Optional[str]:
# feature states
return

if self.environment.created_date > self.feature.created_date:
# Don't create an audit log record for feature states created when
# creating an environment
return

if self.identity_id:
return audit_helpers.get_identity_override_created_audit_message(self)
elif self.feature_segment_id:
return audit_helpers.get_segment_override_created_audit_message(self)

if self.environment.created_date > self.feature.created_date:
# Don't create an audit log record for feature states created when
# creating an environment
return

return audit_helpers.get_environment_feature_state_created_audit_message(self)

def get_update_log_message(self, history_instance) -> typing.Optional[str]:
Expand Down
18 changes: 18 additions & 0 deletions api/tests/unit/features/test_unit_features_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,24 @@ def test_feature_state_get_create_log_message_returns_null_if_environment_create
assert log is None


def test_feature_state_get_create_log_message_returns_value_if_environment_created_after_feature_for_override(
feature, mocker, identity
):
# Given
environment = Environment.objects.create(
name="Test environment", project=feature.project
)
feature_state = FeatureState.objects.create(
environment=environment, feature=feature, identity=identity
)

# When
log = feature_state.get_create_log_message(mocker.MagicMock())

# Then
assert log is not None


def test_feature_state_get_create_log_message_returns_message_if_environment_created_before_feature(
environment, mocker
):
Expand Down

0 comments on commit 5d3e6c9

Please sign in to comment.