source file: /opt/devel/celery/testproj/../celery/tests/test_registry.py
file stats: 59 lines, 59 executed: 100.0% covered
1. import unittest 2. from celery import registry 3. from celery.task import Task, PeriodicTask 4. 5. FUNC_TASK_NAME = "celery.unittest.func_task" 6. 7. 8. class TestTask(Task): 9. name = "celery.unittest.test_task" 10. 11. def run(self, **kwargs): 12. return True 13. 14. 15. class TestPeriodicTask(PeriodicTask): 16. name = "celery.unittest.test_periodic_task" 17. run_every = 10 18. 19. def run(self, **kwargs): 20. return True 21. 22. 23. def func_task(**kwargs): 24. return True 25. 26. 27. class TestTaskRegistry(unittest.TestCase): 28. 29. def assertRegisterUnregisterCls(self, r, task): 30. self.assertRaises(r.NotRegistered, r.unregister, task) 31. r.register(task) 32. self.assertTrue(task.name in r) 33. self.assertRaises(r.AlreadyRegistered, r.register, task) 34. 35. def assertRegisterUnregisterFunc(self, r, task, task_name): 36. self.assertRaises(r.NotRegistered, r.unregister, task_name) 37. r.register(task, task_name) 38. self.assertTrue(task_name in r) 39. self.assertRaises(r.AlreadyRegistered, r.register, task, task_name) 40. 41. def test_task_registry(self): 42. r = registry.TaskRegistry() 43. self.assertTrue(isinstance(r.data, dict), 44. "TaskRegistry has composited dict") 45. 46. self.assertRegisterUnregisterCls(r, TestTask) 47. self.assertRegisterUnregisterFunc(r, func_task, FUNC_TASK_NAME) 48. self.assertRegisterUnregisterCls(r, TestPeriodicTask) 49. 50. tasks = r.get_all() 51. self.assertTrue(isinstance(tasks.get(TestTask.name), TestTask)) 52. self.assertTrue(isinstance(tasks.get(TestPeriodicTask.name), 53. TestPeriodicTask)) 54. self.assertEquals(tasks.get(FUNC_TASK_NAME), func_task) 55. 56. regular = r.get_all_regular() 57. self.assertTrue(TestTask.name in regular) 58. self.assertFalse(TestPeriodicTask.name in regular) 59. self.assertTrue(FUNC_TASK_NAME in regular) 60. 61. periodic = r.get_all_periodic() 62. self.assertFalse(TestTask.name in periodic) 63. self.assertTrue(TestPeriodicTask.name in periodic) 64. self.assertFalse(FUNC_TASK_NAME in periodic) 65. 66. self.assertTrue(isinstance(r.get_task(TestTask.name), TestTask)) 67. self.assertTrue(isinstance(r.get_task(TestPeriodicTask.name), 68. TestPeriodicTask)) 69. self.assertEquals(r.get_task(FUNC_TASK_NAME), func_task) 70. 71. r.unregister(TestTask) 72. self.assertFalse(TestTask.name in r) 73. r.unregister(TestPeriodicTask) 74. self.assertFalse(TestPeriodicTask.name in r) 75. r.unregister(FUNC_TASK_NAME) 76. self.assertFalse(FUNC_TASK_NAME in r) 77. 78. self.assertTrue(func_task()) 79. self.assertTrue(TestTask().run()) 80. self.assertTrue(TestPeriodicTask().run())