test_imports.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from __future__ import absolute_import
  2. from mock import Mock, patch
  3. from celery.utils.imports import (
  4. qualname,
  5. reload_from_cwd,
  6. module_file,
  7. find_module,
  8. NotAPackage,
  9. )
  10. from celery.tests.case import Case
  11. class test_import_utils(Case):
  12. def test_find_module(self):
  13. self.assertTrue(find_module('celery'))
  14. imp = Mock()
  15. imp.return_value = None
  16. with self.assertRaises(NotAPackage):
  17. find_module('foo.bar.baz', imp=imp)
  18. def test_qualname(self):
  19. Class = type('Fox', (object, ), {'__module__': 'quick.brown'})
  20. self.assertEqual(qualname(Class), 'quick.brown.Fox')
  21. self.assertEqual(qualname(Class()), 'quick.brown.Fox')
  22. @patch('celery.utils.imports.reload')
  23. def test_reload_from_cwd(self, reload):
  24. reload_from_cwd('foo')
  25. self.assertTrue(reload.called)
  26. def test_reload_from_cwd_custom_reloader(self):
  27. reload = Mock()
  28. reload_from_cwd('foo', reload)
  29. self.assertTrue(reload.called)
  30. def test_module_file(self):
  31. m1 = Mock()
  32. m1.__file__ = '/opt/foo/xyz.pyc'
  33. self.assertEqual(module_file(m1), '/opt/foo/xyz.py')
  34. m2 = Mock()
  35. m2.__file__ = '/opt/foo/xyz.py'
  36. self.assertEqual(module_file(m1), '/opt/foo/xyz.py')