I'm playing with django 1.6 tutorial but i can't run tests. My project (name mydjango) and app structure (name is polls) are as shown below in a virtualenv. (.nja files are just created by ninja-ide the ide I'm using)
. ├── __init__.py ├── manage.py ├── mydjango │ ├── __init__.py │ ├── __init__.pyc │ ├── mydjango.nja │ ├── settings.py │ ├── settings.pyc │ ├── templates │ │ └── admin │ │ └── base_site.html │ ├── urls.py │ ├── urls.pyc │ ├── wsgi.py │ └── wsgi.pyc ├── polls │ ├── admin.py │ ├── admin.pyc │ ├── __init__.py │ ├── __init__.pyc │ ├── models.py │ ├── models.pyc │ ├── templates │ │ ├── __init__.py │ │ └── polls │ │ ├── detail.html │ │ ├── index.html │ │ ├── __init__.py │ │ └── results.html │ ├── tests.py │ ├── tests.pyc │ ├── urls.py │ ├── urls.pyc │ ├── views.py │ └── views.pyc └── polls.nja
I followed the tutorial to understand how django works but I'm stuck in the test part. As tutorial suggest I created a file named tests.py into the app folder, the pretty straightforward file is:
# -*- coding: utf-8 -*- from django.test import TestCase import datetime from django.utils import timezone from polls.models import Question # Create your tests here.l class QuestionMethodTests(TestCase): def test_was_published_recently_with_future_poll(self): """ was_published_recently dovrebbe ritornare falso se si mette una data nel futuro """ future_question = Question(pub_date=timezone.now() + datetime.timedelta(hours=50)) self.assertEqual(future_question.was_published_recently(), False)
then i installed unittest2 into the virtualenv with
$pip install unittest2
and run
$python manage.py test polls Creating test database for alias 'default'... E ====================================================================== ERROR: mydjango.polls.tests (unittest2.loader.ModuleImportFailure) ---------------------------------------------------------------------- ImportError: Failed to import test module: mydjango.polls.tests Traceback (most recent call last): File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 260, in _find_tests module = self._get_module_from_name(name) File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 238, in _get_module_from_name __import__(name) ImportError: No module named polls.tests ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (errors=1) Destroying test database for alias 'default'...
No way to have the test working, also if don't pass the app name it returns the same error:
$ python manage.py test Creating test database for alias 'default'... E ====================================================================== ERROR: mydjango.polls.tests (unittest2.loader.ModuleImportFailure) ---------------------------------------------------------------------- ImportError: Failed to import test module: mydjango.polls.tests Traceback (most recent call last): File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 260, in _find_tests module = self._get_module_from_name(name) File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 238, in _get_module_from_name __import__(name) ImportError: No module named polls.tests ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (errors=1) Destroying test database for alias 'default'...
My INSTALLED_APPS are:
INSTALLED_APPS = ( 'south', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls', )
What am I doing wrong?
score:208
I had exactly the same issue with my Django project:
$ python manage test polls.tests
worked fine whereas the following failed with an import error:
$ python manage test polls
$ python manage test
(...)
ImportError: Failed to import test module: mydjango.polls.tests
Traceback (most recent call last):
(...)
ImportError: No module named polls.tests
Check carefully the error message: Django's test runner tries to import the tests from mydjango.polls.tests where mydjango is the name of the root directory (the container for your project).
I fixed this issue by deleting the __init__.py
file in mydjango directory (at the same level than manage.py file). This directory is not supposed to be a python module and it seems to mess up with Django's test runner if it is the case.
So just deleting the _init_.py file should fix our problem:
$ rm mydjango/__init__.py
Similar question
- Running django tutorial tests fail - No module named polls.tests
- Django 1.9 Tutorial Part 2: No module named 'polls.apps' when running python manage.py makemigrations polls
- Django 1.5.1 'ImportError: No module named urls' when running tests
- ModuleNotFoundError: No module named 'project.appname' when running Django tests
- Running django-admin tutorial erros: no module named django
- No module named 'polls.apps.PollsConfigdjango'; Django project tutorial 2
- Running django in virtualenv - ImportError: No module named django.core.management?
- No module named django error when running any manage.py command in docker with docker-compose
- Help with "Error: No module named polls" from the Django Project Tutorial 1
- "ImportError: No module named urls" while following Django Tutorial
score:0
first answer didn't work for me. im using win8, may be this is a reason. in terminal try to change dir to ./polls and the run
python ../manage.py test polls
score:1
Anyhow running
$ python manage.py test polls.tests
It works, it's enough for me right now:
Creating test database for alias 'default'...
F
======================================================================
FAIL: test_was_published_recently_with_future_poll (polls.tests.QuestionMethodTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/sergio/.virtualenvs/django4/mydjango/polls/tests.py", line 17, in test_was_published_recently_with_future_poll
self.assertEqual(future_question.was_published_recently(), False)
AssertionError: True != False
score:19
For anyone else having the same problem, another reason for this to happen is if you have the same name for the root folder and the project folder.
For example:
mydjango
├── __init__.py
├── manage.py
├── mydjango
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
├── polls
│ ├── admin.py
│ ├── __init__.py
│ ├── models.py
| ├── tests.py
│ ├── templates
running
./manage.py test
throws errors No module named polls.tests
to fix it simply rename the root folder to something else like :
mydjango_project
├── __init__.py
├── manage.py
├── mydjango
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
├── polls
│ ├── admin.py
│ ├── __init__.py
│ ├── models.py
| ├── tests.py
│ ├── templates
Credit To: stackoverflow.com
Related Query
- 'ImportError: no module named admin' when trying to follow the Django Girls tutorial
- Running Django in Virtualenv on EC2 -- ImportError: No module named django.core.management
- ImportError: No module named cms when running Django with django-cms installed
- "ImportError: No module named cv2" when running Django project from PyCharm IDE
- django running unittest fail while one of my app named "apps", but "runserver" works
- ImportError: No module named simple while running manage.py test in django project
- Django with VS2010 gives me "ImportError: No module named django.core.management" when running
- django tutorial no module named staticfilespolls error
- Django Tutorial 1 - ImportError: No module named apps
- Django ImportError: No Module named apps when running on Openshift
- Running a specific test case in Django when your app has a tests directory
- django import error - No module named core.management
- Django Rest Framework -- no module named rest_framework
- Disable migrations when running unit tests in Django 1.7
- Django - "no module named django.core.management"
- Django import error - no module named django.conf.urls.defaults
- "No module named simple" error in Django
- No module named django but it is installed
- Running django tests with sqlite
- ImportError: No module named django.core.handlers.wsgi in install django mod_wsgi config on apache
More Query from same tag
- How does a python web server overcomes GIL
- Pass extra parameter to custom actions
- Null value in column "name" violates not-null constraint when adding new item in django admin
- Django - Switch language setting for template rendering
- Django ImageField not uploading the image
- How I can convert the `{'c_like': '99', 'count': 1}` to the colour like button and count the likes in Django
- Custom writable field in ModelSerializer
- Django create template filter for nice time
- filter foreignkey field in django admin
- Pushing notifications from a Django app with one server process
- Retrieving most recent commit revision number from a github project
- Django Rest Framework create multiple objects
- TypeError: get() missing 1 required positional argument: 'id'
- Django ORM: Override related_name of Field in Child Class
- Translate on Serializing Django Rest Framework