123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- from __future__ import absolute_import
- from celery.app.registry import _unpickle_task, _unpickle_task_v2
- from celery.tests.case import AppCase, depends_on_current_app
- def returns():
- return 1
- class test_unpickle_task(AppCase):
- @depends_on_current_app
- def test_unpickle_v1(self):
- self.app.tasks['txfoo'] = 'bar'
- self.assertEqual(_unpickle_task('txfoo'), 'bar')
- @depends_on_current_app
- def test_unpickle_v2(self):
- self.app.tasks['txfoo1'] = 'bar1'
- self.assertEqual(_unpickle_task_v2('txfoo1'), 'bar1')
- self.assertEqual(_unpickle_task_v2('txfoo1', module='celery'), 'bar1')
- class test_TaskRegistry(AppCase):
- def setup(self):
- self.mytask = self.app.task(name='A', shared=False)(returns)
- self.myperiodic = self.app.task(
- name='B', shared=False, type='periodic',
- )(returns)
- def test_NotRegistered_str(self):
- self.assertTrue(repr(self.app.tasks.NotRegistered('tasks.add')))
- def assertRegisterUnregisterCls(self, r, task):
- r.unregister(task)
- with self.assertRaises(r.NotRegistered):
- r.unregister(task)
- r.register(task)
- self.assertIn(task.name, r)
- def assertRegisterUnregisterFunc(self, r, task, task_name):
- with self.assertRaises(r.NotRegistered):
- r.unregister(task_name)
- r.register(task, task_name)
- self.assertIn(task_name, r)
- def test_task_registry(self):
- r = self.app._tasks
- self.assertIsInstance(r, dict, 'TaskRegistry is mapping')
- self.assertRegisterUnregisterCls(r, self.mytask)
- self.assertRegisterUnregisterCls(r, self.myperiodic)
- r.register(self.myperiodic)
- r.unregister(self.myperiodic.name)
- self.assertNotIn(self.myperiodic, r)
- r.register(self.myperiodic)
- tasks = dict(r)
- self.assertIs(tasks.get(self.mytask.name), self.mytask)
- self.assertIs(tasks.get(self.myperiodic.name), self.myperiodic)
- self.assertIs(r[self.mytask.name], self.mytask)
- self.assertIs(r[self.myperiodic.name], self.myperiodic)
- r.unregister(self.mytask)
- self.assertNotIn(self.mytask.name, r)
- r.unregister(self.myperiodic)
- self.assertNotIn(self.myperiodic.name, r)
- self.assertTrue(self.mytask.run())
- self.assertTrue(self.myperiodic.run())
- def test_compat(self):
- self.assertTrue(self.app.tasks.regular())
- self.assertTrue(self.app.tasks.periodic())
|