chore: Tests for Rename and Add child Account
diff --git a/erpnext/accounts/doctype/account/test_account.py b/erpnext/accounts/doctype/account/test_account.py
index 89bb018..3c2fb94 100644
--- a/erpnext/accounts/doctype/account/test_account.py
+++ b/erpnext/accounts/doctype/account/test_account.py
@@ -6,7 +6,7 @@
 import frappe
 from erpnext.stock import get_warehouse_account, get_company_default_inventory_account
 from erpnext.accounts.doctype.account.account import update_account_number
-from erpnext.accounts.doctype.account.account import merge_account
+from erpnext.accounts.doctype.account.account import merge_account, update_account_number
 
 class TestAccount(unittest.TestCase):
 	def test_rename_account(self):
@@ -99,7 +99,8 @@
 			"Softwares - _TC", doc.is_group, doc.root_type, doc.company)
 
 	def test_account_sync(self):
-		del frappe.local.flags["ignore_root_company_validation"]
+		frappe.local.flags.pop("ignore_root_company_validation", None)
+
 		acc = frappe.new_doc("Account")
 		acc.account_name = "Test Sync Account"
 		acc.parent_account = "Temporary Accounts - _TC3"
@@ -111,6 +112,56 @@
 		self.assertEqual(acc_tc_4, "Test Sync Account - _TC4")
 		self.assertEqual(acc_tc_5, "Test Sync Account - _TC5")
 
+	def test_account_rename_sync(self):
+		frappe.local.flags.pop("ignore_root_company_validation", None)
+
+		acc = frappe.new_doc("Account")
+		acc.account_name = "Test Rename Account"
+		acc.parent_account = "Temporary Accounts - _TC3"
+		acc.company = "_Test Company 3"
+		acc.insert()
+
+		# Rename account in parent company
+		update_account_number(acc.name, "Test Rename Sync Account", "1234")
+
+		# Check if renmamed in children
+		self.assertTrue(frappe.db.exists("Account", {'account_name': "Test Rename Sync Account", "company": "_Test Company 4", "account_number": "1234"}))
+		self.assertTrue(frappe.db.exists("Account", {'account_name': "Test Rename Sync Account", "company": "_Test Company 5", "account_number": "1234"}))
+
+		frappe.delete_doc("Account", "1234 - Test Rename Sync Account - _TC3")
+		frappe.delete_doc("Account", "1234 - Test Rename Sync Account - _TC4")
+		frappe.delete_doc("Account", "1234 - Test Rename Sync Account - _TC5")
+
+	def test_account_sync_with_missing_parent_account_in_child_company(self):
+		frappe.local.flags.pop("ignore_root_company_validation", None)
+
+		acc = frappe.new_doc("Account")
+		acc.account_name = "Test Group Account"
+		acc.parent_account = "Temporary Accounts - _TC3"
+		acc.is_group = 1
+		acc.company = "_Test Company 3"
+		acc.insert()
+
+		self.assertTrue(frappe.db.exists("Account", {'account_name': "Test Group Account", "company": "_Test Company 4"}))
+		self.assertTrue(frappe.db.exists("Account", {'account_name': "Test Group Account", "company": "_Test Company 5"}))
+
+		acc_tc_5 = frappe.db.get_value('Account', {'account_name': "Test Group Account", "company": "_Test Company 5"})
+		# Rename group account in one child company
+		update_account_number(acc_tc_5, "Test Modified Account")
+
+		# Add child account to test group account in parent company
+		# which will try to do the same in child company
+		acc = frappe.new_doc("Account")
+		acc.account_name = "Test Child Account"
+		acc.parent_account = "Test Group Account - _TC3"
+		acc.company = "_Test Company 3"
+
+		self.assertRaises(frappe.ValidationError, acc.insert)
+
+		to_delete = ["Test Group Account - _TC3", "Test Group Account - _TC5", "Test Modified Account - _TC5"]
+		for doc in to_delete:
+			frappe.delete_doc("Account", doc)
+
 def _make_test_records(verbose):
 	from frappe.test_runner import make_test_objects