test_wrapper.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from huey.tests.base import BaseTestCase
  2. from huey.wrapper import RedisHueyExt
  3. state = {}
  4. def pre_task():
  5. state['pre'] = True
  6. def post_task():
  7. state['post'] = True
  8. huey = RedisHueyExt()
  9. @huey.task(pre_task, post_task)
  10. def set_value(k, v):
  11. state[k] = v
  12. return v
  13. @huey.task(pre_task)
  14. def set_value_pre(k, v):
  15. state[k] = v
  16. return v
  17. @huey.task(None, post_task)
  18. def set_value_post(k, v):
  19. state[k] = v
  20. return v
  21. class TestTaskWrapper(BaseTestCase):
  22. def setUp(self):
  23. super(TestTaskWrapper, self).setUp()
  24. global state
  25. state = {}
  26. def test_task_wrapper(self):
  27. self.assertEqual(state, {})
  28. set_value('foo', 'bar')
  29. huey.execute(huey.dequeue())
  30. self.assertEqual(state, {
  31. 'pre': True,
  32. 'post': True,
  33. 'foo': 'bar'})
  34. def test_pretask_only(self):
  35. set_value_pre('foo', 'bar')
  36. huey.execute(huey.dequeue())
  37. self.assertEqual(state, {
  38. 'pre': True,
  39. 'foo': 'bar'})
  40. def test_posttask_only(self):
  41. set_value_post('foo', 'bar')
  42. huey.execute(huey.dequeue())
  43. self.assertEqual(state, {
  44. 'post': True,
  45. 'foo': 'bar'})