test_backends.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from celery import backends
  2. from celery.backends.rpc import RPCBackend
  3. from celery.backends.cache import CacheBackend
  4. from celery.exceptions import ImproperlyConfigured
  5. from celery.tests.case import AppCase, patch
  6. class test_backends(AppCase):
  7. def test_get_backend_aliases(self):
  8. expects = [('rpc://', RPCBackend),
  9. ('cache+memory://', CacheBackend)]
  10. for url, expect_cls in expects:
  11. backend, url = backends.get_backend_by_url(url, self.app.loader)
  12. self.assertIsInstance(
  13. backend(app=self.app, url=url),
  14. expect_cls,
  15. )
  16. def test_unknown_backend(self):
  17. with self.assertRaises(ImportError):
  18. backends.get_backend_cls('fasodaopjeqijwqe', self.app.loader)
  19. def test_backend_by_url(self, url='redis://localhost/1'):
  20. from celery.backends.redis import RedisBackend
  21. backend, url_ = backends.get_backend_by_url(url, self.app.loader)
  22. self.assertIs(backend, RedisBackend)
  23. self.assertEqual(url_, url)
  24. def test_sym_raises_ValuError(self):
  25. with patch('celery.backends.symbol_by_name') as sbn:
  26. sbn.side_effect = ValueError()
  27. with self.assertRaises(ImproperlyConfigured):
  28. backends.get_backend_cls('xxx.xxx:foo', self.app.loader)