I have copied a working test line by line and just changed a few names (at least so I thought) and now I get this very cryptic error: (I have replaced some stuff with FOO, BAR)
ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed?
The problem is that I do not understand the error at all. What does this error message mean?
Complete stacktrace:
Traceback (most recent call last): File "BAR/modeling/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line utility.execute() File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv super(Command, self).run_from_argv(argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv self.execute(*args, **cmd_options) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute super(Command, self).execute(*args, **options) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute output = self.handle(*args, **options) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle failures = test_runner.run_tests(test_labels) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/test/runner.py", line 531, in run_tests suite = self.build_suite(test_labels, extra_tests) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/test/runner.py", line 451, in build_suite tests = self.test_loader.discover(start_dir=label, **kwargs) File "/Users/jonathan/anaconda/lib/python2.7/unittest/loader.py", line 206, in discover tests = list(self._find_tests(start_dir, pattern)) File "/Users/jonathan/anaconda/lib/python2.7/unittest/loader.py", line 267, in _find_tests raise ImportError(msg % (mod_name, module_dir, expected_dir)) ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed?
In my experience, weird ImportErrors when running tests are caused by an ImportError in the tests module itself.
Ensure that your tests module can be imported:
$ python manage.py shell ... >>> import foo.exports.tests
Edit:
If that causes an error, make sure you do not have both a directory foo/exports/tests
and a file foo/exports/tests.py
As Daniel Hepper said in a comment above, try checking whether you have both a app/tests
folder and a app/tests.py
file in your app.
Django startapp
creates a tests.py
file automatically so there might be a file that you haven't noticed.
If you simply delete the automatically generated tests.py
file, it should work. (Obviously you should check the contents of the file before deleting anything!)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With