test_registry.py 2.2 KB

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