From f1ca9e26310bbc066609ccb0a93214ec2b6935ad Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Tue, 11 Aug 2026 18:26:10 +0530 Subject: [PATCH] test(stock): cover named validation error and same-transaction parent inheritance --- .../stock/doctype/warehouse/test_warehouse.py | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/warehouse/test_warehouse.py b/erpnext/stock/doctype/warehouse/test_warehouse.py index 1dfb1b6337b..b5035b00e9b 100644 --- a/erpnext/stock/doctype/warehouse/test_warehouse.py +++ b/erpnext/stock/doctype/warehouse/test_warehouse.py @@ -165,7 +165,7 @@ class TestWarehouse(ERPNextTestSuite): } ) - self.assertRaises(frappe.ValidationError, warehouse.insert) + self.assertRaisesRegex(frappe.ValidationError, "Missing Inventory Account - _TCIF", warehouse.insert) def test_new_warehouse_can_inherit_inventory_account(self): from erpnext.stock import get_warehouse_account @@ -189,6 +189,37 @@ class TestWarehouse(ERPNextTestSuite): self.assertEqual(get_warehouse_account(warehouse), inventory_account) + def test_new_warehouse_inherits_from_parent_created_in_same_transaction(self): + from erpnext.stock import get_warehouse_account + + company, _warehouse = create_ambiguous_inventory_account_warehouse() + frappe.db.set_value("Company", company, "enable_perpetual_inventory", 1) + root_warehouse = frappe.db.get_value("Warehouse", {"company": company, "is_group": 1}, "name") + inventory_account = frappe.db.get_value( + "Account", {"company": company, "account_type": "Stock", "is_group": 0}, "name" + ) + + parent_warehouse = frappe.get_doc( + { + "doctype": "Warehouse", + "warehouse_name": "New Parent Warehouse", + "parent_warehouse": root_warehouse, + "company": company, + "is_group": 1, + "account": inventory_account, + } + ).insert() + child_warehouse = frappe.get_doc( + { + "doctype": "Warehouse", + "warehouse_name": "New Child Warehouse", + "parent_warehouse": parent_warehouse.name, + "company": company, + } + ).insert() + + self.assertEqual(get_warehouse_account(child_warehouse), inventory_account) + def test_warehouse_onload_allows_missing_inventory_account(self): company, warehouse = create_ambiguous_inventory_account_warehouse() frappe.db.set_value("Company", company, "enable_perpetual_inventory", 1)