From 84f16525e38ab1086375e9974c4e97276a3cb767 Mon Sep 17 00:00:00 2001 From: sokumon Date: Mon, 8 Dec 2025 16:44:13 +0530 Subject: [PATCH] fix: add test for removing orphan entity --- frappe/tests/test_removing_orphans.py | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 frappe/tests/test_removing_orphans.py diff --git a/frappe/tests/test_removing_orphans.py b/frappe/tests/test_removing_orphans.py new file mode 100644 index 0000000000..5dcf9484a1 --- /dev/null +++ b/frappe/tests/test_removing_orphans.py @@ -0,0 +1,29 @@ +import frappe +from frappe.model.sync import remove_orphan_entities +from frappe.modules.export_file import delete_folder +from frappe.tests import IntegrationTestCase + + +class TestRemovingOrphans(IntegrationTestCase): + def test_removing_orphan(self): + _before = frappe.conf.developer_mode + frappe.conf.developer_mode = True + # Create a new report + report = frappe.new_doc("Report") + args = { + "doctype": "Report", + "report_name": "Orphan Report", + "ref_doctype": "DocType", + "is_standard": "Yes", + "module": "Custom", + } + report.update(args) + report.save() + print(f"Created report: {report.name}") + # delete only fixture (emulating that the export/entity is deleted by the developer) + delete_folder("Custom", "Report", report.name) + self.assertTrue(frappe.db.exists("Report", report.name)) + if frappe.db.exists("Report", report.name): + remove_orphan_entities() + self.assertFalse(frappe.db.exists("Report", report.name)) + frappe.conf.developer_mode = _before