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())