From 3549cd39f14c15ead73e7b131d3cf1ab16a64a15 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 24 Jan 2024 11:42:37 +0530 Subject: [PATCH] fix: AttributeError in company transaction deletion (cherry picked from commit b127aa308eeda0246cdf885c36f0b36f270e2ae1) --- erpnext/setup/doctype/company/company.py | 2 +- .../test_transaction_deletion_record.py | 21 ++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 27d7df33a3..a91fd01c91 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -911,8 +911,8 @@ def generate_id_for_deletion_job(company): @frappe.whitelist() def is_deletion_job_running(company): job_id = generate_id_for_deletion_job(company) - job_name = get_job(job_id).get_id() # job name will have site prefix if is_job_enqueued(job_id): + job_name = get_job(job_id).get_id() # job name will have site prefix frappe.throw( _("A Transaction Deletion Job: {0} is already running for {1}").format( frappe.bold(get_link_to_form("RQ Job", job_name)), frappe.bold(company) diff --git a/erpnext/setup/doctype/transaction_deletion_record/test_transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/test_transaction_deletion_record.py index 319d435ca6..844e7865e3 100644 --- a/erpnext/setup/doctype/transaction_deletion_record/test_transaction_deletion_record.py +++ b/erpnext/setup/doctype/transaction_deletion_record/test_transaction_deletion_record.py @@ -4,9 +4,10 @@ import unittest import frappe +from frappe.tests.utils import FrappeTestCase -class TestTransactionDeletionRecord(unittest.TestCase): +class TestTransactionDeletionRecord(FrappeTestCase): def setUp(self): create_company("Dunder Mifflin Paper Co") @@ -14,7 +15,7 @@ class TestTransactionDeletionRecord(unittest.TestCase): frappe.db.rollback() def test_doctypes_contain_company_field(self): - tdr = create_transaction_deletion_request("Dunder Mifflin Paper Co") + tdr = create_transaction_deletion_doc("Dunder Mifflin Paper Co") for doctype in tdr.doctypes: contains_company = False doctype_fields = frappe.get_meta(doctype.doctype_name).as_dict()["fields"] @@ -27,17 +28,27 @@ class TestTransactionDeletionRecord(unittest.TestCase): def test_no_of_docs_is_correct(self): for i in range(5): create_task("Dunder Mifflin Paper Co") - tdr = create_transaction_deletion_request("Dunder Mifflin Paper Co") + tdr = create_transaction_deletion_doc("Dunder Mifflin Paper Co") for doctype in tdr.doctypes: if doctype.doctype_name == "Task": self.assertEqual(doctype.no_of_docs, 5) def test_deletion_is_successful(self): create_task("Dunder Mifflin Paper Co") - create_transaction_deletion_request("Dunder Mifflin Paper Co") + create_transaction_deletion_doc("Dunder Mifflin Paper Co") tasks_containing_company = frappe.get_all("Task", filters={"company": "Dunder Mifflin Paper Co"}) self.assertEqual(tasks_containing_company, []) + def test_company_transaction_deletion_request(self): + from erpnext.setup.doctype.company.company import create_transaction_deletion_request + + # don't reuse below company for other test cases + company = "Deep Space Exploration" + create_company(company) + + # below call should not raise any exceptions or throw errors + create_transaction_deletion_request(company) + def create_company(company_name): company = frappe.get_doc( @@ -46,7 +57,7 @@ def create_company(company_name): company.insert(ignore_if_duplicate=True) -def create_transaction_deletion_request(company): +def create_transaction_deletion_doc(company): tdr = frappe.get_doc({"doctype": "Transaction Deletion Record", "company": company}) tdr.insert() tdr.submit()