I have a fabric script that attempts to run the tests for an application that I wrote.
It is already installed using setup.py and I am able to import it.
I am following the script I found here.
My problem is that django-admin doesn’t find my app:
Traceback (most recent call last):
File
“/usr/local/lib/python2.6/dist-packages/fabric/main.py”,
line 542, in main
commands[name](*args, **kwargs) File
“/usr/local/lib/python2.6/dist-packages/envconf/fabfile.py”, line 35, in test
management.call_command(‘test’, ‘envconf’) File
“/usr/local/lib/python2.6/dist-packages/django/core/management/init.py”,
line 166, in call_command
return klass.execute(*args, **defaults) File “/usr/local/lib/python2.6/dist-packages/django/core/management/base.py”,
line 220, in execute
output = self.handle(*args, **options) File “/usr/local/lib/python2.6/dist-packages/django/core/management/commands/test.py”,
line 37, in handle
failures = test_runner.run_tests(test_labels)
File
“/usr/local/lib/python2.6/dist-packages/django/test/simple.py”,
line 395, in run_tests
suite = self.build_suite(test_labels,
extra_tests) File
“/usr/local/lib/python2.6/dist-packages/django/test/simple.py”,
line 285, in build_suite
app = get_app(label) File “/usr/local/lib/python2.6/dist-packages/django/db/models/loading.py”,
line 140, in get_app
raise ImproperlyConfigured(“App with label %s could not be found” %
app_label)
django.core.exceptions.ImproperlyConfigured:
App with label envconf could not be
found
Here’s my code:
import functools
import os
from fabric.api import local, cd, env
from fabric.contrib.project import rsync_project
from django.conf import settings
from django.core import management
NAME = os.path.basename(os.path.dirname(__file__))
ROOT = os.path.abspath(os.path.dirname(__file__))
os.environ['PYTHONPATH'] = os.pathsep.join([ROOT])
env.hosts = ['omer.me']
local = functools.partial(local, capture=False)
def test():
settings.configure(DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '.',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
},
INSTALLED_APPS = ('envconf', ))
print os.environ
management.call_command('test', 'envconf')
What could be wrong?
I found the problem while digging into the code.
For some reason you cannot run the tests if you have no models.py file.
Opened an issue in django’s trac.