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)