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?
See Question&Answers more detail:
os