Opened 9 years ago
Last modified 12 months ago
#25504 new Bug
Django test teardown fails when there is no default database
Reported by: | Sjoerd Langkemper | Owned by: | |
---|---|---|---|
Component: | Testing framework | Version: | 1.9 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When running a Django TestCase with an empty dict as default database, I get an error. This is similar to #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.
Change History (8)
comment:1 by , 9 years ago
Component: | Uncategorized → Testing framework |
---|---|
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Bug |
comment:2 by , 9 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 9 years ago
comment:4 by , 9 years ago
Version: | 1.9a1 → 1.9 |
---|
comment:5 by , 8 years ago
mihaicc, can you share a link to your work so others could use it as a starting point if you're unable to finish it?
comment:6 by , 7 years ago
Owner: | removed |
---|---|
Status: | assigned → new |
comment:7 by , 12 months ago
There seems to be a conflict in the documentation for this issue of a blank 'default' database. In the Settings docs, it says: "The DATABASES setting must configure a default database; any number of additional databases may also be specified."
But the multiple database setup docs still explicitly gives the example of leaving the 'default' database blank.
What's the path forward on this?
I didn't manage to finish this ticket.
Progress so far: