﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
15605	Testing cannot be loaded when models.py is missing	Omer Katz	nobody	"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
}}}


The problem is in loading.py, if there are no models it shouldn't load them.

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')
}}}

I am suggesting a the following fix:
1) If any models.py are found in any app require a database to be present in the settings.
2) If it is not found, do not require."	Bug	closed	Testing framework	1.2	Normal	duplicate		Jannis Leidel	Unreviewed	0	0	0	0	0	0
