test: add coverage for Delivery Note Trends report

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nabin Hait
2026-06-26 10:32:51 +05:30
parent 6d035274d7
commit 25bcd12e92

View File

@@ -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)