feat: tests
diff --git a/erpnext/accounts/doctype/ledger_merge/ledger_merge.py b/erpnext/accounts/doctype/ledger_merge/ledger_merge.py
index 830ad37..d45ae22 100644
--- a/erpnext/accounts/doctype/ledger_merge/ledger_merge.py
+++ b/erpnext/accounts/doctype/ledger_merge/ledger_merge.py
@@ -72,5 +72,6 @@
ledger_merge.db_set('status', 'Partial Success')
else:
ledger_merge.db_set('status', 'Error')
+ frappe.db.commit()
frappe.publish_realtime("ledger_merge_refresh", {"ledger_merge": ledger_merge.name})
diff --git a/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py b/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py
index 8c7276e..67606dd 100644
--- a/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py
+++ b/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py
@@ -1,9 +1,116 @@
# Copyright (c) 2021, Wahni Green Technologies Pvt. Ltd. and Contributors
# See license.txt
-# import frappe
+import frappe
import unittest
+from erpnext.accounts.doctype.ledger_merge.ledger_merge import start_merge
class TestLedgerMerge(unittest.TestCase):
- pass
+ def test_merge_success(self):
+ if not frappe.db.exists("Account", "Indirect Expenses - _TC"):
+ acc = frappe.new_doc("Account")
+ acc.account_name = "Indirect Expenses"
+ acc.is_group = 1
+ acc.parent_account = "Expenses - _TC"
+ acc.company = "_Test Company"
+ acc.insert()
+ if not frappe.db.exists("Account", "Indirect Test Expenses - _TC"):
+ acc = frappe.new_doc("Account")
+ acc.account_name = "Indirect Test Expenses"
+ acc.is_group = 1
+ acc.parent_account = "Expenses - _TC"
+ acc.company = "_Test Company"
+ acc.insert()
+ if not frappe.db.exists("Account", "Administrative Test Expenses - _TC"):
+ acc = frappe.new_doc("Account")
+ acc.account_name = "Administrative Test Expenses"
+ acc.parent_account = "Indirect Test Expenses - _TC"
+ acc.company = "_Test Company"
+ acc.insert()
+
+ doc = frappe.get_doc({
+ "doctype": "Ledger Merge",
+ "company": "_Test Company",
+ "root_type": frappe.db.get_value("Account", "Indirect Test Expenses - _TC", "root_type"),
+ "account": "Indirect Expenses - _TC",
+ "merge_accounts": [
+ {
+ "account": "Indirect Test Expenses - _TC",
+ "account_name": "Indirect Expenses"
+ }
+ ]
+ }).insert(ignore_permissions=True)
+
+ parent = frappe.db.get_value("Account", "Administrative Test Expenses - _TC", "parent_account")
+ self.assertEqual(parent, "Indirect Test Expenses - _TC")
+
+ start_merge(doc.name)
+
+ parent = frappe.db.get_value("Account", "Administrative Test Expenses - _TC", "parent_account")
+ self.assertEqual(parent, "Indirect Expenses - _TC")
+
+ self.assertFalse(frappe.db.exists("Account", "Indirect Test Expenses - _TC"))
+
+ def test_partial_merge_success(self):
+ if not frappe.db.exists("Account", "Indirect Income - _TC"):
+ acc = frappe.new_doc("Account")
+ acc.account_name = "Indirect Income"
+ acc.is_group = 1
+ acc.parent_account = "Income - _TC"
+ acc.company = "_Test Company"
+ acc.insert()
+ if not frappe.db.exists("Account", "Indirect Test Income - _TC"):
+ acc = frappe.new_doc("Account")
+ acc.account_name = "Indirect Test Income"
+ acc.is_group = 1
+ acc.parent_account = "Income - _TC"
+ acc.company = "_Test Company"
+ acc.insert()
+ if not frappe.db.exists("Account", "Administrative Test Income - _TC"):
+ acc = frappe.new_doc("Account")
+ acc.account_name = "Administrative Test Income"
+ acc.parent_account = "Indirect Test Income - _TC"
+ acc.company = "_Test Company"
+ acc.insert()
+
+ doc = frappe.get_doc({
+ "doctype": "Ledger Merge",
+ "company": "_Test Company",
+ "root_type": frappe.db.get_value("Account", "Indirect Income - _TC", "root_type"),
+ "account": "Indirect Income - _TC",
+ "merge_accounts": [
+ {
+ "account": "Indirect Test Income - _TC",
+ "account_name": "Indirect Test Income"
+ },
+ {
+ "account": "Administrative Test Income - _TC",
+ "account_name": "Administrative Test Income"
+ }
+ ]
+ }).insert(ignore_permissions=True)
+
+ parent = frappe.db.get_value("Account", "Administrative Test Income - _TC", "parent_account")
+ self.assertEqual(parent, "Indirect Test Income - _TC")
+
+ start_merge(doc.name)
+
+ parent = frappe.db.get_value("Account", "Administrative Test Income - _TC", "parent_account")
+ self.assertEqual(parent, "Indirect Income - _TC")
+
+ self.assertFalse(frappe.db.exists("Account", "Indirect Test Income - _TC"))
+ self.assertTrue(frappe.db.exists("Account", "Administrative Test Income - _TC"))
+
+ def tearDown(self):
+ for entry in frappe.db.get_all("Ledger Merge"):
+ frappe.delete_doc("Ledger Merge", entry.name)
+
+ test_accounts = [
+ "Indirect Test Expenses - _TC",
+ "Administrative Test Expenses - _TC",
+ "Indirect Test Income - _TC",
+ "Administrative Test Income - _TC"
+ ]
+ for account in test_accounts:
+ frappe.delete_doc_if_exists("Account", account)