refactor(test): more modularization
diff --git a/erpnext/accounts/doctype/unreconcile_payments/test_unreconcile_payments.py b/erpnext/accounts/doctype/unreconcile_payments/test_unreconcile_payments.py
index 924a950..3d7c6cb 100644
--- a/erpnext/accounts/doctype/unreconcile_payments/test_unreconcile_payments.py
+++ b/erpnext/accounts/doctype/unreconcile_payments/test_unreconcile_payments.py
@@ -20,8 +20,8 @@
def tearDown(self):
frappe.db.rollback()
- def test_01_unreconcile_invoice(self):
- si1 = create_sales_invoice(
+ def create_sales_invoice(self):
+ si = create_sales_invoice(
item=self.item,
company=self.company,
customer=self.customer,
@@ -32,19 +32,9 @@
rate=100,
price_list_rate=100,
)
+ return si
- si2 = create_sales_invoice(
- item=self.item,
- company=self.company,
- customer=self.customer,
- debit_to=self.debit_to,
- posting_date=today(),
- parent_cost_center=self.cost_center,
- cost_center=self.cost_center,
- rate=100,
- price_list_rate=100,
- )
-
+ def create_payment_entry(self):
pe = create_payment_entry(
company=self.company,
payment_type="Receive",
@@ -55,7 +45,13 @@
paid_amount=200,
save=True,
)
+ return pe
+ def test_01_unreconcile_invoice(self):
+ si1 = self.create_sales_invoice()
+ si2 = self.create_sales_invoice()
+
+ pe = self.create_payment_entry()
pe.append(
"references",
{"reference_doctype": si1.doctype, "reference_name": si1.name, "allocated_amount": 100},
@@ -68,10 +64,10 @@
pe.save().submit()
# Assert outstanding
- si1.reload()
- si2.reload()
+ [doc.reload() for doc in [si1, si2, pe]]
self.assertEqual(si1.outstanding_amount, 0)
self.assertEqual(si2.outstanding_amount, 0)
+ self.assertEqual(pe.unallocated_amount, 0)
unreconcile = frappe.get_doc(
{
@@ -92,54 +88,22 @@
unreconcile.save().submit()
# Assert outstanding
- si1.reload()
- si2.reload()
+ [doc.reload() for doc in [si1, si2, pe]]
self.assertEqual(si1.outstanding_amount, 100)
self.assertEqual(si2.outstanding_amount, 0)
-
- pe.reload()
self.assertEqual(len(pe.references), 1)
self.assertEqual(pe.unallocated_amount, 100)
def test_02_unreconcile_one_payment_from_multi_payments(self):
"""
- Scenario: 2 payments, both split against 2 invoices
+ Scenario: 2 payments, both split against 2 different invoices
Unreconcile only one payment from one invoice
"""
- si1 = create_sales_invoice(
- item=self.item,
- company=self.company,
- customer=self.customer,
- debit_to=self.debit_to,
- posting_date=today(),
- parent_cost_center=self.cost_center,
- cost_center=self.cost_center,
- rate=100,
- price_list_rate=100,
- )
-
- si2 = create_sales_invoice(
- item=self.item,
- company=self.company,
- customer=self.customer,
- debit_to=self.debit_to,
- posting_date=today(),
- parent_cost_center=self.cost_center,
- cost_center=self.cost_center,
- rate=100,
- price_list_rate=100,
- )
-
- pe1 = create_payment_entry(
- company=self.company,
- payment_type="Receive",
- party_type="Customer",
- party=self.customer,
- paid_from=self.debit_to,
- paid_to=self.cash,
- paid_amount=100,
- save=True,
- )
+ si1 = self.create_sales_invoice()
+ si2 = self.create_sales_invoice()
+ pe1 = self.create_payment_entry()
+ pe1.paid_amount = 100
+ # Allocate payment against both invoices
pe1.append(
"references",
{"reference_doctype": si1.doctype, "reference_name": si1.name, "allocated_amount": 50},
@@ -148,19 +112,11 @@
"references",
{"reference_doctype": si2.doctype, "reference_name": si2.name, "allocated_amount": 50},
)
- # Allocation payment against both invoices
pe1.save().submit()
- pe2 = create_payment_entry(
- company=self.company,
- payment_type="Receive",
- party_type="Customer",
- party=self.customer,
- paid_from=self.debit_to,
- paid_to=self.cash,
- paid_amount=100,
- save=True,
- )
+ pe2 = self.create_payment_entry()
+ pe2.paid_amount = 100
+ # Allocate payment against both invoices
pe2.append(
"references",
{"reference_doctype": si1.doctype, "reference_name": si1.name, "allocated_amount": 50},
@@ -169,14 +125,14 @@
"references",
{"reference_doctype": si2.doctype, "reference_name": si2.name, "allocated_amount": 50},
)
- # Allocation payment against both invoices
pe2.save().submit()
- # Assert outstanding
- si1.reload()
- si2.reload()
- self.assertEqual(si1.outstanding_amount, 0)
- self.assertEqual(si2.outstanding_amount, 0)
+ # Assert outstanding and unallocated
+ [doc.reload() for doc in [si1, si2, pe1, pe2]]
+ self.assertEqual(si1.outstanding_amount, 0.0)
+ self.assertEqual(si2.outstanding_amount, 0.0)
+ self.assertEqual(pe1.unallocated_amount, 0.0)
+ self.assertEqual(pe2.unallocated_amount, 0.0)
unreconcile = frappe.get_doc(
{
@@ -196,14 +152,10 @@
unreconcile.remove(x)
unreconcile.save().submit()
- # Assert outstanding
- si1.reload()
- si2.reload()
+ # Assert outstanding and unallocated
+ [doc.reload() for doc in [si1, si2, pe1, pe2]]
self.assertEqual(si1.outstanding_amount, 50)
self.assertEqual(si2.outstanding_amount, 0)
-
- pe1.reload()
- pe2.reload()
self.assertEqual(len(pe1.references), 2)
self.assertEqual(len(pe2.references), 1)
self.assertEqual(pe1.unallocated_amount, 0)