test: fix dunning test
diff --git a/erpnext/accounts/doctype/dunning/test_dunning.py b/erpnext/accounts/doctype/dunning/test_dunning.py
index 925b7e5..129ca32 100644
--- a/erpnext/accounts/doctype/dunning/test_dunning.py
+++ b/erpnext/accounts/doctype/dunning/test_dunning.py
@@ -6,6 +6,7 @@
import frappe
from frappe.utils import add_days, nowdate, today
+from erpnext import get_default_cost_center
from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import (
unlink_payment_on_cancel_of_invoice,
@@ -17,16 +18,19 @@
create_sales_invoice_against_cost_center,
)
+test_dependencies = ["Company", "Cost Center"]
+
class TestDunning(unittest.TestCase):
@classmethod
- def setUpClass(self):
+ def setUpClass(cls):
create_dunning_type("First Notice", fee=0.0, interest=0.0, is_default=1)
create_dunning_type("Second Notice", fee=10.0, interest=10.0, is_default=0)
unlink_payment_on_cancel_of_invoice()
+ frappe.db.commit()
@classmethod
- def tearDownClass(self):
+ def tearDownClass(cls):
unlink_payment_on_cancel_of_invoice(0)
def test_first_dunning(self):
@@ -39,7 +43,7 @@
self.assertEqual(round(dunning.grand_total, 2), 100.00)
def test_second_dunning(self):
- dunning = create_dunning(overdue_days=15, dunning_type_name="Second Notice")
+ dunning = create_dunning(overdue_days=15, dunning_type_name="Second Notice - _TC")
self.assertEqual(round(dunning.total_outstanding, 2), 100.00)
self.assertEqual(round(dunning.total_interest, 2), 0.41)
@@ -48,7 +52,7 @@
self.assertEqual(round(dunning.grand_total, 2), 110.41)
def test_payment_entry(self):
- dunning = create_dunning(overdue_days=15, dunning_type_name="Second Notice")
+ dunning = create_dunning(overdue_days=15, dunning_type_name="Second Notice - _TC")
dunning.submit()
pe = get_payment_entry("Dunning", dunning.name)
pe.reference_no = "1"
@@ -78,24 +82,25 @@
dunning.dunning_type = dunning_type.name
dunning.rate_of_interest = dunning_type.rate_of_interest
dunning.dunning_fee = dunning_type.dunning_fee
+ dunning.income_account = dunning_type.income_account
+ dunning.cost_center = dunning_type.cost_center
- dunning.income_account = get_income_account(dunning.company)
- dunning.save()
-
- return dunning
+ return dunning.save()
def create_dunning_type(title, fee, interest, is_default):
- existing = frappe.db.exists("Dunning Type", title)
- if existing:
- return frappe.get_doc("Dunning Type", existing)
+ company = "_Test Company"
+ if frappe.db.exists("Dunning Type", f"{title} - _TC"):
+ return
dunning_type = frappe.new_doc("Dunning Type")
dunning_type.dunning_type = title
- dunning_type.company = "_Test Company"
+ dunning_type.company = company
dunning_type.is_default = is_default
dunning_type.dunning_fee = fee
dunning_type.rate_of_interest = interest
+ dunning_type.income_account = get_income_account(company)
+ dunning_type.cost_center = get_default_cost_center(company)
dunning_type.append(
"dunning_letter_text",
{
@@ -104,8 +109,7 @@
"closing_text": "We kindly request that you pay the outstanding amount immediately, including interest and late fees.",
},
)
- dunning_type.save()
- return dunning_type
+ dunning_type.insert()
def get_income_account(company):