test_imports.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import pytest
  2. from case import Mock
  3. from celery.five import bytes_if_py2
  4. from celery.utils.imports import (
  5. NotAPackage,
  6. qualname,
  7. gen_task_name,
  8. reload_from_cwd,
  9. module_file,
  10. find_module,
  11. )
  12. def test_find_module():
  13. assert find_module('celery')
  14. imp = Mock()
  15. imp.return_value = None
  16. with pytest.raises(NotAPackage):
  17. find_module('foo.bar.baz', imp=imp)
  18. assert find_module('celery.worker.request')
  19. def test_qualname():
  20. Class = type(bytes_if_py2('Fox'), (object,), {
  21. '__module__': 'quick.brown',
  22. })
  23. assert qualname(Class) == 'quick.brown.Fox'
  24. assert qualname(Class()) == 'quick.brown.Fox'
  25. def test_reload_from_cwd(patching):
  26. reload = patching('celery.utils.imports.reload')
  27. reload_from_cwd('foo')
  28. reload.assert_called()
  29. def test_reload_from_cwd_custom_reloader():
  30. reload = Mock()
  31. reload_from_cwd('foo', reload)
  32. reload.assert_called()
  33. def test_module_file():
  34. m1 = Mock()
  35. m1.__file__ = '/opt/foo/xyz.pyc'
  36. assert module_file(m1) == '/opt/foo/xyz.py'
  37. m2 = Mock()
  38. m2.__file__ = '/opt/foo/xyz.py'
  39. assert module_file(m1) == '/opt/foo/xyz.py'
  40. class test_gen_task_name:
  41. def test_no_module(self):
  42. app = Mock()
  43. app.name == '__main__'
  44. assert gen_task_name(app, 'foo', 'axsadaewe')