[Django]-What does "'tests' module incorrectly imported" mean?

322👍

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

116👍

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!)

31👍

In case you have created a directory named tests and have written test files inside it, for example test_views.py, test_models.py, etc., make sure you remove the file test.py created automatically by the command python manage.py startapp.

5👍

Try checking whether you have both a app/tests folder and a app/tests.py

file in your app.

By default a file is automatically called tests.py delete this file it the error will be resolved

5👍

In one word: delete test.py or tests folder
I had the same issue when I copied some tests I wrote before in one of my projects into my new projects where I had more than 5 same APIs there.
Usually I do create a new folder called tests and write all my tests in a folder for each app so everything looks better
The mistake I made which led me through this problem was not deleting the test.py file from app folder when I created tests folder in the same app
Because you cant have both tests folder and test.py in the same app.

2👍

Just to add to the list of possible cases.

This can also happen inside a virtual env when the package you’re on was locally installed.

In that case you just need to uninstall the version that was installed an “re-link” it (I don’t known the correct term) by using the develop command

~/dev/stufflib% pip uninstall stufflib
~/dev/stufflib% python setup.py develop
~/dev/stufflib% python setup.py test

1👍

In my case problem was because I tried to start django test task from symlink to folder with project, not from “real” path. When I run django test task from project folder not using symlink I don’t get this error.

1👍

make sure you don’t have 2 files named test.py in your tree files that way Python should pick the one you wanted to.

Leave a comment