From c7d6b6c0c4631c34664250a0ccd19a2cfd2495d2 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 26 Jun 2026 10:18:48 +0530 Subject: [PATCH 1/2] test: add coverage for Warehouse Wise Stock Balance report Co-Authored-By: Claude Opus 4.8 (1M context) --- .../test_warehouse_wise_stock_balance.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py diff --git a/erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py b/erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py new file mode 100644 index 00000000000..527baee591f --- /dev/null +++ b/erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py @@ -0,0 +1,31 @@ +# Copyright (c) 2026, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe + +from erpnext.stock.doctype.item.test_item import make_item +from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry +from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse +from erpnext.stock.report.warehouse_wise_stock_balance.warehouse_wise_stock_balance import execute +from erpnext.tests.utils import ERPNextTestSuite + + +class TestWarehouseWiseStockBalance(ERPNextTestSuite): + def run_report(self, **extra): + filters = frappe._dict({"company": "_Test Company", **extra}) + return execute(filters)[1] + + def row(self, data, warehouse): + return next(w for w in data if w["name"] == warehouse) + + def test_balance_and_parent_accumulation(self): + parent = create_warehouse("_Test WWSB Parent", properties={"is_group": 1}) + child = create_warehouse("_Test WWSB Child", properties={"parent_warehouse": parent}) + + make_stock_entry(item_code=make_item().name, to_warehouse=child, qty=10, rate=100) + + data = self.run_report() + # stock balance = sum of stock value difference (10 * 100) + self.assertEqual(self.row(data, child)["stock_balance"], 1000) + # the group warehouse rolls up its children + self.assertEqual(self.row(data, parent)["stock_balance"], 1000) From d46b3f362703309e2cfc2cd55e99ea7e6729b1e3 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 26 Jun 2026 13:28:28 +0530 Subject: [PATCH 2/2] test: reuse BootStrapTestData master data to reduce runtime Co-Authored-By: Claude Opus 4.8 (1M context) --- .../test_warehouse_wise_stock_balance.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py b/erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py index 527baee591f..16bcc181d87 100644 --- a/erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py +++ b/erpnext/stock/report/warehouse_wise_stock_balance/test_warehouse_wise_stock_balance.py @@ -3,7 +3,6 @@ import frappe -from erpnext.stock.doctype.item.test_item import make_item from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse from erpnext.stock.report.warehouse_wise_stock_balance.warehouse_wise_stock_balance import execute @@ -22,7 +21,7 @@ class TestWarehouseWiseStockBalance(ERPNextTestSuite): parent = create_warehouse("_Test WWSB Parent", properties={"is_group": 1}) child = create_warehouse("_Test WWSB Child", properties={"parent_warehouse": parent}) - make_stock_entry(item_code=make_item().name, to_warehouse=child, qty=10, rate=100) + make_stock_entry(item_code="_Test Item", to_warehouse=child, qty=10, rate=100) data = self.run_report() # stock balance = sum of stock value difference (10 * 100)