From 25bcd12e923039c64e34bd4a7f8317907d2a90b0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 26 Jun 2026 10:32:51 +0530 Subject: [PATCH] test: add coverage for Delivery Note Trends report Co-Authored-By: Claude Opus 4.8 (1M context) --- .../test_delivery_note_trends.py | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 erpnext/stock/report/delivery_note_trends/test_delivery_note_trends.py diff --git a/erpnext/stock/report/delivery_note_trends/test_delivery_note_trends.py b/erpnext/stock/report/delivery_note_trends/test_delivery_note_trends.py new file mode 100644 index 00000000000..003b481f85e --- /dev/null +++ b/erpnext/stock/report/delivery_note_trends/test_delivery_note_trends.py @@ -0,0 +1,59 @@ +# Copyright (c) 2026, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import frappe + +from erpnext.tests.utils import ERPNextTestSuite + + +class TestDeliveryNoteTrends(ERPNextTestSuite): + def run_report(self, **extra): + from erpnext.stock.report.delivery_note_trends.delivery_note_trends import execute + + filters = frappe._dict( + { + "company": "_Test Company", + "fiscal_year": "_Test Fiscal Year 2026", + "period": "Yearly", + "based_on": "Item", + } + ) + filters.update(extra) + return execute(filters)[1] + + def test_delivery_qty_in_trend(self): + # based_on="Item" + period="Yearly": each row is + # [item_code, item_name, currency, yearly_qty, yearly_amt, total_qty, total_amt]. + # A submitted Delivery Note of qty 5 @ rate 200 should sum to qty 5 / amount 1000 + # (base_net_amount) in both the yearly bucket and the Total columns. + from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note + from erpnext.stock.doctype.item.test_item import make_item + from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry + + item = make_item(properties={"is_stock_item": 1, "is_sales_item": 1}).name + + make_stock_entry( + item_code=item, + to_warehouse="_Test Warehouse - _TC", + qty=20, + rate=100, + posting_date="2026-06-01", + ) + create_delivery_note( + item_code=item, + qty=5, + rate=200, + company="_Test Company", + posting_date="2026-06-01", + ) + + data = self.run_report() + + item_rows = [row for row in data if row[0] == item] + self.assertEqual(len(item_rows), 1) + + row = item_rows[0] + self.assertEqual(row[3], 5) # yearly qty bucket + self.assertEqual(row[4], 1000) # yearly amount bucket (base_net_amount) + self.assertEqual(row[5], 5) # Total(Qty) + self.assertEqual(row[6], 1000) # Total(Amt)