refactor(test): make pos invoice merge log deterministic

This commit is contained in:
ruthra kumar
2026-02-13 12:40:51 +05:30
parent 61b40fdccc
commit dba530bb47

View File

@@ -22,22 +22,21 @@ from erpnext.tests.utils import ERPNextTestSuite
class TestPOSInvoiceMergeLog(ERPNextTestSuite):
@classmethod
def setUpClass(cls):
super().setUpClass()
frappe.db.sql("delete from `tabPOS Opening Entry`")
cls.enterClassContext(cls.change_settings("Selling Settings", validate_selling_price=0))
cls.enterClassContext(cls.change_settings("POS Settings", invoice_type="POS Invoice"))
mode_of_payment = frappe.get_doc("Mode of Payment", "Bank Draft")
set_default_account_for_mode_of_payment(mode_of_payment, "_Test Company", "_Test Bank - _TC")
def setUp(self):
frappe.db.sql("delete from `tabPOS Invoice`")
mode_of_payment = frappe.get_doc("Mode of Payment", "Bank Draft")
self.test_user, self.pos_profile = init_user_and_profile()
self.opening_entry = create_opening_entry(self.pos_profile, self.test_user.name)
set_default_account_for_mode_of_payment(mode_of_payment, "_Test Company", "_Test Bank - _TC")
frappe.db.set_single_value("POS Settings", "invoice_type", "POS Invoice")
frappe.db.set_single_value("Selling Settings", "validate_selling_price", 0)
def make_closing_entry(self):
closing_entry = make_closing_entry_from_opening(self.opening_entry)
closing_entry.insert().submit()
return closing_entry
def test_consolidated_invoice_creation(self):
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
pos_inv = create_pos_invoice(rate=300, do_not_submit=1)
pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300})
pos_inv.save()
@@ -53,9 +52,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
pos_inv3.save()
pos_inv3.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
pos_inv.load_from_db()
self.assertTrue(frappe.db.exists("Sales Invoice", pos_inv.consolidated_invoice))
@@ -66,9 +63,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
self.assertFalse(pos_inv.consolidated_invoice == pos_inv3.consolidated_invoice)
def test_consolidated_credit_note_creation(self):
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
pos_inv = create_pos_invoice(rate=300, do_not_submit=1)
pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300})
pos_inv.save()
@@ -93,9 +87,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
pos_inv_cn.paid_amount = -300
pos_inv_cn.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
pos_inv.load_from_db()
self.assertTrue(frappe.db.exists("Sales Invoice", pos_inv.consolidated_invoice))
@@ -113,9 +105,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
self.assertEqual(consolidated_credit_note.payments[1].amount, -200)
def test_consolidated_invoice_item_taxes(self):
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
inv = create_pos_invoice(qty=1, rate=100, do_not_save=True)
inv.append(
@@ -152,9 +141,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
inv2.save()
inv2.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
inv.load_from_db()
@@ -202,9 +189,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
qty=10,
)
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
inv = create_pos_invoice(qty=3, rate=10000, do_not_save=True)
inv.append(
"taxes",
@@ -239,9 +223,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
inv2.insert()
inv2.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
inv.load_from_db()
consolidated_invoice = frappe.get_doc("Sales Invoice", inv.consolidated_invoice)
@@ -259,9 +241,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
qty=10,
)
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
inv = create_pos_invoice(qty=6, rate=10000, do_not_save=True)
inv.append(
"taxes",
@@ -301,9 +280,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
inv3.insert()
inv3.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
inv.load_from_db()
consolidated_invoice = frappe.get_doc("Sales Invoice", inv.consolidated_invoice)
@@ -320,8 +297,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
rate=8000,
qty=10,
)
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
item_rates = [69, 59, 29]
for _i in [1, 2]:
@@ -358,9 +333,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
inv.save()
inv.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
inv.load_from_db()
consolidated_invoice = frappe.get_doc("Sales Invoice", inv.consolidated_invoice)
@@ -378,9 +351,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
qty=10,
)
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
inv = create_pos_invoice(qty=1, rate=69.5, do_not_save=True)
inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 70})
inv.insert()
@@ -391,9 +361,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
inv2.insert()
inv2.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
inv.load_from_db()
consolidated_invoice = frappe.get_doc("Sales Invoice", inv.consolidated_invoice)
@@ -416,9 +384,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
se = make_serialized_item(self)
serial_no = get_serial_nos_from_bundle(se.get("items")[0].serial_and_batch_bundle)[0]
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
pos_inv = create_pos_invoice(
item_code="_Test Serialized Item With Series",
serial_no=[serial_no],
@@ -445,9 +410,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
pos_inv2.save()
pos_inv2.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
pos_inv.load_from_db()
pos_inv2.load_from_db()
@@ -466,9 +429,6 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
create_cost_center(cost_center_name="_Test POS Cost Center 1", is_group=0)
create_cost_center(cost_center_name="_Test POS Cost Center 2", is_group=0)
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
pos_inv = create_pos_invoice(rate=300, do_not_submit=1)
pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300})
pos_inv.cost_center = "_Test POS Cost Center 1 - _TC"
@@ -487,9 +447,7 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
pos_inv3.save()
pos_inv3.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
self.make_closing_entry()
pos_inv.load_from_db()
self.assertTrue(frappe.db.exists("Sales Invoice", pos_inv.consolidated_invoice))
@@ -508,17 +466,12 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
"""
Test if the company is fetched from POS Closing Entry
"""
test_user, pos_profile = init_user_and_profile()
opening_entry = create_opening_entry(pos_profile, test_user.name)
pos_inv = create_pos_invoice(rate=300, do_not_submit=1)
pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300})
pos_inv.save()
pos_inv.submit()
closing_entry = make_closing_entry_from_opening(opening_entry)
closing_entry.insert()
closing_entry.submit()
closing_entry = self.make_closing_entry()
self.assertTrue(frappe.db.exists("POS Invoice Merge Log", {"pos_closing_entry": closing_entry.name}))