#26270 closed Bug (invalid)
testing framework requires database configuration from lean databaseless project
Reported by: | Herbert | Owned by: | nobody |
---|---|---|---|
Component: | Testing framework | Version: | 1.9 |
Severity: | Normal | Keywords: | database |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Create django project and application and remove some superfluous files:
django-admin startproject foo cd foo/ django-admin startapp bar rm -rf bar/migrations/ bar/models.py bar/apps.py bar/admin.py foo/wsgi.py
Changed the files to look like this:
# foo/settings.py import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY = '1234' DEBUG = True ALLOWED_HOSTS = [] INSTALLED_APPS = [ 'bar' ] MIDDLEWARE_CLASSES = [] ROOT_URLCONF = 'foo.urls' DATABASES = {}
# foo/urls.py from django.conf.urls import url from bar.views import my_oh_my urlpatterns = [ url(r'^$', my_oh_my), ]
# bar/tests.py from django.test import TestCase class TestFoo(TestCase): def test_foo(self): assert True print('tested!')
# bar/views.py from django.shortcuts import render from django.http.response import HttpResponse def my_oh_my(request): return HttpResponse('my, oh, my!')
Both foo and bar have an empty __init__.py
. Running this project as a server is fine, however testing it results in this error:
# python3 manage.py test tested! .E ====================================================================== ERROR: test_foo (bar.tests.TestFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/herbert/.local/lib/python3.4/site-packages/django/test/testcases.py", line 217, in __call__ self._post_teardown() File "/home/herbert/.local/lib/python3.4/site-packages/django/test/testcases.py", line 919, in _post_teardown self._fixture_teardown() File "/home/herbert/.local/lib/python3.4/site-packages/django/test/testcases.py", line 1072, in _fixture_teardown return super(TestCase, self)._fixture_teardown() File "/home/herbert/.local/lib/python3.4/site-packages/django/test/testcases.py", line 955, in _fixture_teardown inhibit_post_migrate=inhibit_post_migrate) File "/home/herbert/.local/lib/python3.4/site-packages/django/core/management/__init__.py", line 119, in call_command return command.execute(*args, **defaults) File "/home/herbert/.local/lib/python3.4/site-packages/django/core/management/base.py", line 399, in execute output = self.handle(*args, **options) File "/home/herbert/.local/lib/python3.4/site-packages/django/core/management/commands/flush.py", line 49, in handle allow_cascade=allow_cascade) File "/home/herbert/.local/lib/python3.4/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/herbert/.local/lib/python3.4/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/herbert/.local/lib/python3.4/site-packages/django/db/backends/base/introspection.py", line 56, in table_names with self.connection.cursor() as cursor: File "/home/herbert/.local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 233, in cursor cursor = self.make_cursor(self._cursor()) File "/home/herbert/.local/lib/python3.4/site-packages/django/db/backends/dummy/base.py", line 21, in complain raise ImproperlyConfigured("settings.DATABASES is improperly configured. " django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details. ---------------------------------------------------------------------- Ran 1 test in 0.002s FAILED (errors=1)
It states that I need to better configure the DATABASES variable, which I think is not adequate.
django.__version__ == '1.9.2'
Attachments (1)
Change History (8)
by , 9 years ago
comment:1 by , 9 years ago
Description: | modified (diff) |
---|
comment:2 by , 9 years ago
Please try with SimpleTestCase instead TestCase
as the latter does require a database.
comment:3 by , 9 years ago
You are right!
Perhaps, a pointer to SimpleTestCase
could be provided here:
https://docs.djangoproject.com/en/1.9/topics/testing/tools/#django.test.TestCase
comment:4 by , 9 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
I agree those docs could be better organized: PR
project files