test_registry.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import unittest
  2. from celery import registry
  3. from celery.task import Task, PeriodicTask
  4. FUNC_TASK_NAME = "celery.unittest.func_task"
  5. class TestTask(Task):
  6. name = "celery.unittest.test_task"
  7. def run(self, **kwargs):
  8. return True
  9. class TestPeriodicTask(PeriodicTask):
  10. name = "celery.unittest.test_periodic_task"
  11. run_every = 10
  12. def run(self, **kwargs):
  13. return True
  14. def func_task(**kwargs):
  15. return True
  16. class TestTaskRegistry(unittest.TestCase):
  17. def assertRegisterUnregisterCls(self, r, task):
  18. self.assertRaises(r.NotRegistered, r.unregister, task)
  19. r.register(task)
  20. self.assertTrue(task.name in r)
  21. self.assertRaises(r.AlreadyRegistered, r.register, task)
  22. def assertRegisterUnregisterFunc(self, r, task, task_name):
  23. self.assertRaises(r.NotRegistered, r.unregister, task_name)
  24. r.register(task, task_name)
  25. self.assertTrue(task_name in r)
  26. self.assertRaises(r.AlreadyRegistered, r.register, task, task_name)
  27. def test_task_registry(self):
  28. r = registry.TaskRegistry()
  29. self.assertTrue(isinstance(r.data, dict),
  30. "TaskRegistry has composited dict")
  31. self.assertRegisterUnregisterCls(r, TestTask)
  32. self.assertRegisterUnregisterFunc(r, func_task, FUNC_TASK_NAME)
  33. self.assertRegisterUnregisterCls(r, TestPeriodicTask)
  34. tasks = r.get_all()
  35. self.assertTrue(isinstance(tasks.get(TestTask.name), TestTask))
  36. self.assertTrue(isinstance(tasks.get(TestPeriodicTask.name),
  37. TestPeriodicTask))
  38. self.assertEquals(tasks.get(FUNC_TASK_NAME), func_task)
  39. regular = r.get_all_regular()
  40. self.assertTrue(TestTask.name in regular)
  41. self.assertFalse(TestPeriodicTask.name in regular)
  42. self.assertTrue(FUNC_TASK_NAME in regular)
  43. periodic = r.get_all_periodic()
  44. self.assertFalse(TestTask.name in periodic)
  45. self.assertTrue(TestPeriodicTask.name in periodic)
  46. self.assertFalse(FUNC_TASK_NAME in periodic)
  47. self.assertTrue(isinstance(r.get_task(TestTask.name), TestTask))
  48. self.assertTrue(isinstance(r.get_task(TestPeriodicTask.name),
  49. TestPeriodicTask))
  50. self.assertEquals(r.get_task(FUNC_TASK_NAME), func_task)
  51. r.unregister(TestTask)
  52. self.assertFalse(TestTask.name in r)
  53. r.unregister(TestPeriodicTask)
  54. self.assertFalse(TestPeriodicTask.name in r)
  55. r.unregister(FUNC_TASK_NAME)
  56. self.assertFalse(FUNC_TASK_NAME in r)
  57. self.assertTrue(func_task())
  58. self.assertTrue(TestTask().run())
  59. self.assertTrue(TestPeriodicTask().run())