From e2f5536f08d697ff01ef8eb39a228637a41825fe Mon Sep 17 00:00:00 2001 From: David Date: Wed, 13 Nov 2024 10:40:09 +0100 Subject: [PATCH 1/3] fix(testing): ensure idempotency on the test environment user --- frappe/parallel_test_runner.py | 1 - frappe/tests/classes/unit_test_case.py | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/frappe/parallel_test_runner.py b/frappe/parallel_test_runner.py index 9459c3b586..fd2453608d 100644 --- a/frappe/parallel_test_runner.py +++ b/frappe/parallel_test_runner.py @@ -85,7 +85,6 @@ class ParallelTestRunner: print("running tests from", "/".join(file_info)) return - frappe.set_user("Administrator") path, filename = file_info module = self.get_module(path, filename) test_suite = unittest.TestSuite() diff --git a/frappe/tests/classes/unit_test_case.py b/frappe/tests/classes/unit_test_case.py index 8ae656f5eb..45b8e56963 100644 --- a/frappe/tests/classes/unit_test_case.py +++ b/frappe/tests/classes/unit_test_case.py @@ -49,6 +49,10 @@ class UnitTestCase(unittest.TestCase, BaseTestCase): super().setUpClass() cls.doctype = _get_doctype_from_module(cls) cls.module = frappe.get_module(cls.__module__) + # Test Environment + frappe.set_user("Administrator") + # Test Environment (cleanup) + cls.addClassCleanup(frappe.set_user, "Administrator") cls._unit_test_case_class_setup_done = True def assertQueryEqual(self, first: str, second: str) -> None: From b20fc4856b54553ef3555455e271fb0f76995512 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 13 Nov 2024 11:07:36 +0100 Subject: [PATCH 2/3] chore: add depr to commit types for deprecation decisions --- commitlint.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/commitlint.config.js b/commitlint.config.js index 09de8b8272..0c582f542f 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -19,6 +19,7 @@ module.exports = { "revert", "style", "test", + "deprecate", // deprecation decision ], ], }, From 087b26dd599886854b58d093522d165b3f2eef03 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 13 Nov 2024 11:09:05 +0100 Subject: [PATCH 3/3] deprecate: setting Administrator by test runner --- frappe/parallel_test_runner.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frappe/parallel_test_runner.py b/frappe/parallel_test_runner.py index fd2453608d..7c53c57dfd 100644 --- a/frappe/parallel_test_runner.py +++ b/frappe/parallel_test_runner.py @@ -85,6 +85,14 @@ class ParallelTestRunner: print("running tests from", "/".join(file_info)) return + from frappe.deprecation_dumpster import deprecation_warning + + deprecation_warning( + "2024-11-13", + "v17", + "Setting the test environment user to 'Administrator' by the test runner is deprecated. The UnitTestCase now ensures a consistent user environment on set up and tear down at the class level. ", + ) + frappe.set_user("Administrator") path, filename = file_info module = self.get_module(path, filename) test_suite = unittest.TestSuite()