#15605: Testing cannot be loaded when models.py is missing
-------------------------------+---------------------------
 Reporter:  the_drow           |         Owner:  nobody
   Status:  new                |     Milestone:  1.4
Component:  Testing framework  |       Version:  1.2
 Keywords:                     |  Triage Stage:  Unreviewed
Has patch:  0                  |
-------------------------------+---------------------------
 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.

-- 
Ticket URL: <http://code.djangoproject.com/ticket/15605>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to