diff --git a/erpnext/buying/doctype/buying_settings/test_buying_settings.py b/erpnext/buying/doctype/buying_settings/test_buying_settings.py index c884f51e7eb..c5ddef4fe7f 100644 --- a/erpnext/buying/doctype/buying_settings/test_buying_settings.py +++ b/erpnext/buying/doctype/buying_settings/test_buying_settings.py @@ -1,9 +1,30 @@ # Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors # See license.txt -# import frappe + +from unittest.mock import patch + +import frappe from erpnext.tests.utils import ERPNextTestSuite class TestBuyingSettings(ERPNextTestSuite): - pass + def test_unrelated_change_does_not_update_supplier_metadata(self): + settings = frappe.get_single("Buying Settings") + settings.allow_multiple_items = not settings.allow_multiple_items + + with patch("erpnext.utilities.naming.set_by_naming_series") as set_by_naming_series: + settings.save() + + set_by_naming_series.assert_not_called() + + def test_supplier_metadata_updates_when_related_settings_change(self): + settings = frappe.get_single("Buying Settings") + settings.supp_master_name = ( + "Supplier Name" if settings.supp_master_name == "Naming Series" else "Naming Series" + ) + + with patch("erpnext.utilities.naming.set_by_naming_series") as set_by_naming_series: + settings.save() + + set_by_naming_series.assert_called_once() diff --git a/erpnext/selling/doctype/selling_settings/test_selling_settings.py b/erpnext/selling/doctype/selling_settings/test_selling_settings.py index 9a839d3b2f3..6bfa45527b8 100644 --- a/erpnext/selling/doctype/selling_settings/test_selling_settings.py +++ b/erpnext/selling/doctype/selling_settings/test_selling_settings.py @@ -1,6 +1,8 @@ # Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors # See license.txt +from unittest.mock import patch + import frappe from erpnext.tests.utils import ERPNextTestSuite @@ -12,3 +14,23 @@ class TestSellingSettings(ERPNextTestSuite): # if setup was completed correctly default = frappe.db.get_single_value("Selling Settings", "maintain_same_rate_action") self.assertEqual("Stop", default) + + def test_unrelated_change_does_not_update_customer_metadata(self): + settings = frappe.get_single("Selling Settings") + settings.allow_multiple_items = not settings.allow_multiple_items + + with patch("erpnext.utilities.naming.set_by_naming_series") as set_by_naming_series: + settings.save() + + set_by_naming_series.assert_not_called() + + def test_customer_metadata_updates_when_related_settings_change(self): + settings = frappe.get_single("Selling Settings") + settings.cust_master_name = ( + "Customer Name" if settings.cust_master_name == "Naming Series" else "Naming Series" + ) + + with patch("erpnext.utilities.naming.set_by_naming_series") as set_by_naming_series: + settings.save() + + set_by_naming_series.assert_called_once()