From 7aa6a07e7477c4d625466bff29d0e012111ead4a Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Tue, 11 Aug 2026 16:03:50 +0530 Subject: [PATCH] test(stock): cover item metadata rewrite gating --- .../stock_settings/test_stock_settings.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/erpnext/stock/doctype/stock_settings/test_stock_settings.py b/erpnext/stock/doctype/stock_settings/test_stock_settings.py index 112fa52401d..398dbfeac02 100644 --- a/erpnext/stock/doctype/stock_settings/test_stock_settings.py +++ b/erpnext/stock/doctype/stock_settings/test_stock_settings.py @@ -2,6 +2,8 @@ # See license.txt +from unittest.mock import patch + import frappe from erpnext.tests.utils import ERPNextTestSuite @@ -51,3 +53,32 @@ class TestStockSettings(ERPNextTestSuite): ) item.delete() + + def test_unrelated_change_does_not_update_item_metadata(self): + settings = frappe.get_single("Stock Settings") + settings.allow_partial_reservation = not settings.allow_partial_reservation + + with ( + patch("erpnext.utilities.naming.set_by_naming_series") as set_by_naming_series, + patch("frappe.make_property_setter") as make_property_setter, + ): + settings.save() + + set_by_naming_series.assert_not_called() + make_property_setter.assert_not_called() + + def test_item_metadata_updates_when_related_settings_change(self): + settings = frappe.get_single("Stock Settings") + settings.item_naming_by = ( + "Item Code" if settings.item_naming_by == "Naming Series" else "Naming Series" + ) + settings.show_barcode_field = not settings.show_barcode_field + + with ( + patch("erpnext.utilities.naming.set_by_naming_series") as set_by_naming_series, + patch("frappe.make_property_setter") as make_property_setter, + ): + settings.save() + + set_by_naming_series.assert_called_once() + self.assertEqual(make_property_setter.call_count, 3)