test: add tests for PO->PI, PO->PR workflow

Add failing test cases for PR status and PR percent billed.
This commit is contained in:
Ankush Menat 2021-03-31 21:02:16 +05:30
parent 56bd4d71a9
commit 4198cf58e5
No known key found for this signature in database
GPG Key ID: 8EA82E09BBD13AAF

View File

@ -191,7 +191,7 @@ class TestPurchaseReceipt(unittest.TestCase):
rm_supp_cost = sum([d.amount for d in pr.get("supplied_items")])
self.assertEqual(pr.get("items")[0].rm_supp_cost, flt(rm_supp_cost, 2))
pr.cancel()
def test_subcontracting_gle_fg_item_rate_zero(self):
@ -912,6 +912,57 @@ class TestPurchaseReceipt(unittest.TestCase):
ste1.cancel()
po.cancel()
def test_po_to_pi_and_po_to_pr_worflow_full(self):
"""Test following behaviour:
- Create PO
- Create PI from PO and submit
- Create PR from PO and submit
"""
from erpnext.buying.doctype.purchase_order import test_purchase_order
from erpnext.buying.doctype.purchase_order import purchase_order
po = test_purchase_order.create_purchase_order()
pi = purchase_order.make_purchase_invoice(po.name)
pi.submit()
pr = purchase_order.make_purchase_receipt(po.name)
pr.submit()
pr.load_from_db()
self.assertEqual(pr.status, "Completed")
self.assertEqual(pr.per_billed, 100)
def test_po_to_pi_and_po_to_pr_worflow_partial(self):
"""Test following behaviour:
- Create PO
- Create partial PI from PO and submit
- Create PR from PO and submit
"""
from erpnext.buying.doctype.purchase_order import test_purchase_order
from erpnext.buying.doctype.purchase_order import purchase_order
po = test_purchase_order.create_purchase_order()
pi = purchase_order.make_purchase_invoice(po.name)
pi.items[0].qty /= 2 # roughly 50%, ^ this function only creates PI with 1 item.
pi.submit()
pr = purchase_order.make_purchase_receipt(po.name)
pr.save()
# per_billed is only updated after submission.
self.assertEqual(flt(pr.per_billed), 0)
pr.submit()
pi.load_from_db()
pr.load_from_db()
self.assertEqual(pr.status, "To Bill")
self.assertAlmostEqual(pr.per_billed, 50.0, places=2)
def get_sl_entries(voucher_type, voucher_no):
return frappe.db.sql(""" select actual_qty, warehouse, stock_value_difference
from `tabStock Ledger Entry` where voucher_type=%s and voucher_no=%s