test_registry.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from huey import RedisHuey
  2. from huey.api import crontab
  3. from huey.api import QueueTask
  4. from huey.registry import registry
  5. from huey.tests.base import BaseTestCase
  6. from huey.tests.base import DummyHuey
  7. huey = DummyHuey(None)
  8. @huey.task()
  9. def test_task_one(x, y):
  10. pass
  11. @huey.periodic_task(crontab(minute='0'))
  12. def test_task_two():
  13. pass
  14. @huey.task(foo='bar', priority=3)
  15. def important():
  16. pass
  17. class MyTaskClass(QueueTask):
  18. def execute(self):
  19. pass
  20. class TestRegistry(BaseTestCase):
  21. def test_registry(self):
  22. self.assertTrue('queue_task_test_task_one' in registry)
  23. self.assertTrue('queue_task_test_task_two' in registry)
  24. self.assertFalse('MyTaskClass' in registry)
  25. registry.register(MyTaskClass)
  26. self.assertTrue('MyTaskClass' in registry)
  27. self.assertFalse('another' in registry)
  28. def test_arbitrary_parameters(self):
  29. Task = registry._registry['queue_task_important']
  30. self.assertEqual(Task.foo, 'bar')
  31. self.assertEqual(Task.priority, 3)
  32. def test_periodic_tasks(self):
  33. periodic = registry._periodic_tasks
  34. self.assertTrue(test_task_two.task_class in periodic)
  35. def test_non_global_task_registry(self):
  36. huey = RedisHuey(global_registry=False)
  37. @huey.task()
  38. def test():
  39. return 'test'
  40. self.assertIn('queue_task_test', huey.registry._registry)
  41. huey2 = RedisHuey(global_registry=False)
  42. self.assertNotIn('queue_task_test', huey2.registry._registry)