From c9f74e21a0bb7aee6350676ff9872c8594c251de Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Tue, 11 Aug 2026 16:22:21 +0530 Subject: [PATCH] test: cover selling settings toggle setter gating --- .../selling_settings/test_selling_settings.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/erpnext/selling/doctype/selling_settings/test_selling_settings.py b/erpnext/selling/doctype/selling_settings/test_selling_settings.py index 6bfa45527b8..021ea583591 100644 --- a/erpnext/selling/doctype/selling_settings/test_selling_settings.py +++ b/erpnext/selling/doctype/selling_settings/test_selling_settings.py @@ -34,3 +34,27 @@ class TestSellingSettings(ERPNextTestSuite): settings.save() set_by_naming_series.assert_called_once() + + def test_unrelated_change_does_not_rewrite_toggle_setters(self): + settings = frappe.get_single("Selling Settings") + settings.allow_multiple_items = not settings.allow_multiple_items + + with patch( + "erpnext.selling.doctype.selling_settings.selling_settings.make_property_setter" + ) as make_property_setter: + settings.save() + + make_property_setter.assert_not_called() + + def test_toggle_setters_rewritten_when_related_settings_change(self): + settings = frappe.get_single("Selling Settings") + settings.hide_tax_id = not settings.hide_tax_id + settings.editable_bundle_item_rates = not settings.editable_bundle_item_rates + settings.enable_discount_accounting = not settings.enable_discount_accounting + + with patch( + "erpnext.selling.doctype.selling_settings.selling_settings.make_property_setter" + ) as make_property_setter: + settings.save() + + self.assertEqual(make_property_setter.call_count, 11)