test: opening balance in stock balance report
diff --git a/erpnext/stock/report/stock_balance/test_stock_balance.py b/erpnext/stock/report/stock_balance/test_stock_balance.py
index 52c48a0..360ad3a 100644
--- a/erpnext/stock/report/stock_balance/test_stock_balance.py
+++ b/erpnext/stock/report/stock_balance/test_stock_balance.py
@@ -19,12 +19,14 @@
def setUp(self):
self.item = make_item()
- self.filters = {
- "company": "_Test Company",
- "item_code": self.item.name,
- "from_date": str(today()),
- "to_date": str(today()),
- }
+ self.filters = _dict(
+ {
+ "company": "_Test Company",
+ "item_code": self.item.name,
+ "from_date": str(today()),
+ "to_date": str(today()),
+ }
+ )
def tearDown(self):
frappe.db.rollback()
@@ -51,6 +53,9 @@
# value invariant
self.assertAlmostEqual(row.bal_val, row.opening_val + row.in_val - row.out_val, msg)
+ # valuation rate
+ self.assertAlmostEqual(row.val_rate, row.bal_val / row.bal_qty, 3, msg)
+
# ----------- tests
def test_basic_stock_balance(self):
@@ -75,3 +80,23 @@
rows[0],
)
self.assertBasicInvariants(rows)
+
+ def test_opening_balance(self):
+ self.generate_stock_ledger(
+ self.item.name,
+ [
+ _dict(qty=1, rate=1, posting_date="2021-01-01"),
+ _dict(qty=2, rate=2, posting_date="2021-01-02"),
+ _dict(qty=3, rate=3, posting_date="2021-01-03"),
+ ],
+ )
+ rows = stock_balance(self.filters)
+ self.assertBasicInvariants(rows)
+
+ rows = stock_balance(self.filters.update({"from_date": "2021-01-02"}))
+ self.assertBasicInvariants(rows)
+ self.assertPartialDictionary({"opening_qty": 1, "in_qty": 5}, rows[0])
+
+ rows = stock_balance(self.filters.update({"from_date": "2022-01-01"}))
+ self.assertBasicInvariants(rows)
+ self.assertPartialDictionary({"opening_qty": 6, "in_qty": 0}, rows[0])