diff --git a/zerver/actions/realm_settings.py b/zerver/actions/realm_settings.py index 4a5e8b2ee7..1b28936183 100644 --- a/zerver/actions/realm_settings.py +++ b/zerver/actions/realm_settings.py @@ -56,6 +56,9 @@ def do_set_realm_property( ), f"Cannot update {name}: {value} is not an instance of {property_type}" old_value = getattr(realm, name) + if old_value == value: + return + setattr(realm, name, value) realm.save(update_fields=[name]) diff --git a/zerver/tests/test_events.py b/zerver/tests/test_events.py index 231ca97a26..af9f3abaef 100644 --- a/zerver/tests/test_events.py +++ b/zerver/tests/test_events.py @@ -3532,16 +3532,20 @@ class RealmPropertyActionTest(BaseAction): if vals is None: raise AssertionError(f"No test created for {name}") now = timezone_now() + original_val = getattr(self.user_profile.realm, name) + do_set_realm_property(self.user_profile.realm, name, vals[0], acting_user=self.user_profile) - self.assertEqual( - RealmAuditLog.objects.filter( - realm=self.user_profile.realm, - event_type=RealmAuditLog.REALM_PROPERTY_CHANGED, - event_time__gte=now, - acting_user=self.user_profile, - ).count(), - 1, - ) + + if vals[0] != original_val: + self.assertEqual( + RealmAuditLog.objects.filter( + realm=self.user_profile.realm, + event_type=RealmAuditLog.REALM_PROPERTY_CHANGED, + event_time__gte=now, + acting_user=self.user_profile, + ).count(), + 1, + ) for count, val in enumerate(vals[1:]): now = timezone_now() state_change_expected = True