﻿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
25504	Django test teardown fails when there is no default database	Sjoerd Langkemper	Hwayoung Cha	"When running a Django TestCase with an empty dict as default database, I get an error. This is similar to [https://code.djangoproject.com/ticket/24394 #24394], but happens at teardown of the test.

I installed Django 1.9a1, created a new project using `django-admin startproject bug`. I edited my settings.py to read this:


{{{
DATABASES = {
    'default': {},
    'other': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
}}}


And I added an empty testcase that uses the Django TestCase class like this:

{{{
from django.test.testcases import TestCase

class Test(TestCase):
    def test_nothing(self):
        pass
}}}

Then, when I do `./manage test` I get the following stacktrace:

{{{
Traceback (most recent call last):
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/test/testcases.py"", line 217, in __call__
    self._post_teardown()
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/test/testcases.py"", line 919, in _post_teardown
    self._fixture_teardown()
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/test/testcases.py"", line 1072, in _fixture_teardown
    return super(TestCase, self)._fixture_teardown()
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/test/testcases.py"", line 955, in _fixture_teardown
    inhibit_post_migrate=inhibit_post_migrate)
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/core/management/__init__.py"", line 119, in call_command
    return command.execute(*args, **defaults)
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/core/management/base.py"", line 399, in execute
    output = self.handle(*args, **options)
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/core/management/commands/flush.py"", line 49, in handle
    allow_cascade=allow_cascade)
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/core/management/sql.py"", line 15, in sql_flush
    tables = connection.introspection.django_table_names(only_existing=True, include_views=False)
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py"", line 86, in django_table_names
    existing_tables = self.table_names(include_views=include_views)
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/db/backends/base/introspection.py"", line 56, in table_names
    with self.connection.cursor() as cursor:
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/db/backends/base/base.py"", line 233, in cursor
    cursor = self.make_cursor(self._cursor())
  File ""/home/sjoerd/.virtualenvs/b24394/local/lib/python2.7/site-packages/django/db/backends/dummy/base.py"", line 21, in complain
    raise ImproperlyConfigured(""settings.DATABASES is improperly configured. ""
ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
}}}"	Bug	assigned	Testing framework	1.9	Normal				Accepted	0	0	0	0	0	0
