From 233d5ad2126af0d157e4d99b36aafe2c29804901 Mon Sep 17 00:00:00 2001 From: AarDG10 Date: Wed, 4 Feb 2026 18:59:10 +0530 Subject: [PATCH] test: rewrite test to perform sim. instead --- frappe/tests/test_email.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/frappe/tests/test_email.py b/frappe/tests/test_email.py index 788fe1e476..dedb3ab5b0 100644 --- a/frappe/tests/test_email.py +++ b/frappe/tests/test_email.py @@ -315,18 +315,24 @@ class TestEmail(IntegrationTestCase): target_user = "testimpersonate@example.com" frappe.db.delete("Email Queue Recipient", {"recipient": target_user}) # sanity if not frappe.db.exists("User", target_user): - frappe.get_doc({"doctype": "User", "email": target_user, "first_name": "Target"}).insert( - ignore_permissions=True - ) - reason = "Testing Security Alert" - impersonate(user=target_user, reason=reason) - self.assertEqual(frappe.session.user, target_user) # test if impersonation worked - self.assertTrue(frappe.db.exists("Activity Log", {"user": target_user, "operation": "Impersonate"})) - email_queued = frappe.db.exists( - "Email Queue Recipient", {"recipient": target_user, "status": "Not Sent"} - ) - self.assertTrue(email_queued, f"Impersonation email was not queued for {target_user}") + frappe.get_doc( + {"doctype": "User", "email": target_user, "first_name": "Target", "enabled": 1} + ).insert(ignore_permissions=True) + with ( + patch("frappe.sendmail") as mocked_sendmail, + patch("frappe.local.login_manager", create=True) as mocked_lm, + ): + reason = "Testing Security Alert" + impersonate(user=target_user, reason=reason) + + self.assertTrue(mocked_sendmail.called) + _, kwargs = mocked_sendmail.call_args + self.assertIn(target_user, kwargs.get("recipients")) + self.assertIn(reason, kwargs.get("content")) + mocked_lm.impersonate.assert_called_with(target_user) + + # Cleanup frappe.db.delete("User", {"email": target_user})