You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 line
1.1 KiB

  1. # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
  2. # MIT License. See license.txt
  3. from __future__ import unicode_literals
  4. import unittest
  5. import frappe
  6. from frappe.desk.doctype.todo.todo import ToDo
  7. from frappe.cache_manager import clear_controller_cache
  8. class TestHooks(unittest.TestCase):
  9. def test_hooks(self):
  10. hooks = frappe.get_hooks()
  11. self.assertTrue(isinstance(hooks.get("app_name"), list))
  12. self.assertTrue(isinstance(hooks.get("doc_events"), dict))
  13. self.assertTrue(isinstance(hooks.get("doc_events").get("*"), dict))
  14. self.assertTrue(isinstance(hooks.get("doc_events").get("*"), dict))
  15. self.assertTrue("frappe.desk.notifications.clear_doctype_notifications" in
  16. hooks.get("doc_events").get("*").get("on_update"))
  17. def test_override_doctype_class(self):
  18. from frappe import hooks
  19. # Set hook
  20. hooks.override_doctype_class = {
  21. 'ToDo': ['frappe.tests.test_hooks.CustomToDo']
  22. }
  23. # Clear cache
  24. frappe.cache().delete_value('app_hooks')
  25. clear_controller_cache('ToDo')
  26. todo = frappe.get_doc(doctype='ToDo', description='asdf')
  27. self.assertTrue(isinstance(todo, CustomToDo))
  28. class CustomToDo(ToDo):
  29. pass