Reputation: 16469
In my file django app tests.py
, I import another module I create called helpers
. helpers
is on the same directory level as tests.py
. When I run ./manage.py tests
I get this error:
$ ./manage.py test
Creating test database for alias 'default'...
E
======================================================================
ERROR: api.tests (unittest.loader.ModuleImportFailure)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", line 58, in testPartExecutor
yield
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", line 577, in run
testMethod()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/loader.py", line 32, in testFailure
raise exception
ImportError: Failed to import test module: api.tests
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/loader.py", line 312, in _find_tests
module = self._get_module_from_name(name)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/loader.py", line 290, in _get_module_from_name
__import__(name)
File "/Users/bli1/Development/projects/cherngloong/cherngloong/api/tests.py", line 8, in <module>
from helpers.APIHelpers import KeyGrabber
ImportError: No module named 'helpers'
Here is my project structure:
Basically, tests.py
can't find the helpers
module. I'm not sure what is the best/proper/standard way to avoid this problem within a django project
Upvotes: 2
Views: 884
Reputation: 330
Try this:
api.helpers.APIHelpers import KeyGrabber
in Django packages often start with the app name. You can also try relative imports.
Upvotes: 2