From 29d8f2a568aae7ee54b9e46ea3cdacf77920d3b3 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Fri, 17 Nov 2023 15:56:17 +0530 Subject: [PATCH] test: test auth_hooks --- frappe/tests/test_hooks.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/frappe/tests/test_hooks.py b/frappe/tests/test_hooks.py index 41a734e7ad..09a1810dbe 100644 --- a/frappe/tests/test_hooks.py +++ b/frappe/tests/test_hooks.py @@ -1,10 +1,9 @@ # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors # License: MIT. See LICENSE - import frappe from frappe.cache_manager import clear_controller_cache from frappe.desk.doctype.todo.todo import ToDo -from frappe.tests.utils import FrappeTestCase +from frappe.tests.utils import FrappeTestCase, patch_hooks class TestHooks(FrappeTestCase): @@ -95,11 +94,28 @@ class TestHooks(FrappeTestCase): event.delete() + def test_auth_hook(self): + import requests + with patch_hooks({ "auth_hooks": ["frappe.tests.test_hooks.custom_auth"] }): + site_url = frappe.utils.get_site_url(frappe.local.site) + response = requests.get( + site_url + "/api/method/frappe.auth.get_logged_user", + headers={"Authorization": "Bearer set_test_example_user"} + ).json() + # Test! + self.assertTrue(response.get("message") == "test@example.com") + def custom_has_permission(doc, ptype, user): if doc.flags.dont_touch_me: return False +def custom_auth(): + auth_type, token = frappe.get_request_header("Authorization", "Bearer ").split(" ") + if token == "set_test_example_user": + frappe.set_user("test@example.com") + + class CustomToDo(ToDo): pass