2

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:

enter image description here

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

Liondancer
  • 15,721
  • 51
  • 149
  • 255

1 Answers1

2

Try this:

api.helpers.APIHelpers import KeyGrabber

in Django packages often start with the app name. You can also try relative imports.

Community
  • 1
  • 1
jorlugaqui
  • 330
  • 3
  • 11