@@ -225,6 +225,44 @@ def test_create_audit_log_from_historical_record_creates_audit_log_with_correct_
225225 )
226226
227227
228+ def test_create_audit_log_from_historical_record__cascade_deleted_feature_segment__does_nothing (
229+ admin_user : FFAdminUser ,
230+ feature : Feature ,
231+ segment : Segment ,
232+ environment : Environment ,
233+ mocker : MockerFixture ,
234+ ) -> None :
235+ """https://github.com/Flagsmith/flagsmith/issues/6792"""
236+ # Given
237+ feature_segment = FeatureSegment .objects .create (
238+ environment = environment ,
239+ feature = feature ,
240+ segment = segment ,
241+ )
242+ feature_state = FeatureState .objects .create (
243+ environment = environment ,
244+ feature = feature ,
245+ feature_segment = feature_segment ,
246+ )
247+ feature_state .enabled = not feature_state .enabled
248+ feature_state .save () # creates a "~" historical record
249+ history_instance = feature_state .history .filter (history_type = "~" ).first ()
250+ assert history_instance is not None
251+ feature_segment .delete () # cascade-deletes the FeatureState
252+ get_update_log_message = mocker .spy (FeatureState , "get_update_log_message" )
253+
254+ # When
255+ create_audit_log_from_historical_record (
256+ history_instance .history_id ,
257+ admin_user .id ,
258+ feature_state .history_record_class_path ,
259+ )
260+
261+ # Then
262+ assert get_update_log_message .call_count == 1
263+ assert get_update_log_message .spy_return is None
264+
265+
228266def test_create_segment_priorities_changed_audit_log (
229267 admin_user : FFAdminUser ,
230268 feature_segment : FeatureSegment ,
0 commit comments