From ce3dd17c2ee7ae81e1fc597b7a24ba4bbaee1625 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 5 Sep 2015 18:57:05 +0200 Subject: [PATCH] [1.8.x] Updated references to the TEST_* database settings. They were removed in Django 1.9. I could leave the reference to TEST_DEPENDENCIES in the 1.2.4 release notes because the link points to the right location and the name was accurate at the time. Backport of 6d1110f from master --- django/db/backends/base/creation.py | 2 +- .../contributing/writing-code/unit-tests.txt | 6 +-- docs/topics/testing/advanced.txt | 46 ++++++++++++------- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/django/db/backends/base/creation.py b/django/db/backends/base/creation.py index 72eb345e09..909c570854 100644 --- a/django/db/backends/base/creation.py +++ b/django/db/backends/base/creation.py @@ -427,7 +427,7 @@ class BaseDatabaseCreation(object): Internal implementation - returns the name of the test DB that will be created. Only useful when called from create_test_db() and _create_test_db() and when no external munging is done with the 'NAME' - or 'TEST_NAME' settings. + settings. """ if self.connection.settings_dict['TEST']['NAME']: return self.connection.settings_dict['TEST']['NAME'] diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index 688c746002..f37902e960 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -68,7 +68,7 @@ The :setting:`DATABASES` setting in any test settings module needs to define two databases: * A ``default`` database. This database should use the backend that - you want to use for primary testing + you want to use for primary testing. * A database with the alias ``other``. The ``other`` database is used to establish that queries can be directed to different databases. As a result, @@ -98,8 +98,8 @@ These test databases are deleted when the tests are finished. You will also need to ensure that your database uses UTF-8 as the default character set. If your database server doesn't use UTF-8 as a default charset, -you will need to include a value for :setting:`TEST_CHARSET` in the settings -dictionary for the applicable database. +you will need to include a value for :setting:`CHARSET ` in the +test settings dictionary for the applicable database. .. _runtests-specifying-labels: diff --git a/docs/topics/testing/advanced.txt b/docs/topics/testing/advanced.txt index 830df3b4ac..6adae9ed50 100644 --- a/docs/topics/testing/advanced.txt +++ b/docs/topics/testing/advanced.txt @@ -97,7 +97,9 @@ configuration:: 'ENGINE': 'django.db.backends.mysql', 'NAME': 'myproject', 'HOST': 'dbreplica', - 'TEST_MIRROR': 'default' + 'TEST': { + 'MIRROR': 'default', + }, # ... plus some other settings } } @@ -111,8 +113,8 @@ normal activity, any write to ``default`` will appear on ``replica``. If Django created two independent test databases, this would break any tests that expected replication to occur. However, the ``replica`` database has been configured as a test mirror (using the -:setting:`TEST_MIRROR` setting), indicating that under testing, -``replica`` should be treated as a mirror of ``default``. +:setting:`MIRROR ` test setting), indicating that under +testing, ``replica`` should be treated as a mirror of ``default``. When the test environment is configured, a test version of ``replica`` will *not* be created. Instead the connection to ``replica`` @@ -132,41 +134,51 @@ However, no guarantees are made on the creation order of any other databases in your test setup. If your database configuration requires a specific creation order, you -can specify the dependencies that exist using the -:setting:`TEST_DEPENDENCIES` setting. Consider the following -(simplified) example database configuration:: +can specify the dependencies that exist using the :setting:`DEPENDENCIES +` test setting. Consider the following (simplified) +example database configuration:: DATABASES = { 'default': { - # ... db settings - 'TEST_DEPENDENCIES': ['diamonds'] + # ... db settings + 'TEST': { + 'DEPENDENCIES': ['diamonds'], + }, }, 'diamonds': { - # ... db settings - 'TEST_DEPENDENCIES': [] + ... db settings + 'TEST': { + 'DEPENDENCIES': [], + }, }, 'clubs': { # ... db settings - 'TEST_DEPENDENCIES': ['diamonds'] + 'TEST': { + 'DEPENDENCIES': ['diamonds'], + }, }, 'spades': { # ... db settings - 'TEST_DEPENDENCIES': ['diamonds','hearts'] + 'TEST': { + 'DEPENDENCIES': ['diamonds', 'hearts'], + }, }, 'hearts': { # ... db settings - 'TEST_DEPENDENCIES': ['diamonds','clubs'] + 'TEST': { + 'DEPENDENCIES': ['diamonds', 'clubs'], + }, } } Under this configuration, the ``diamonds`` database will be created first, as it is the only database alias without dependencies. The ``default`` and ``clubs`` alias will be created next (although the order of creation of this -pair is not guaranteed); then ``hearts``; and finally ``spades``. +pair is not guaranteed), then ``hearts``, and finally ``spades``. -If there are any circular dependencies in the -:setting:`TEST_DEPENDENCIES` definition, an ``ImproperlyConfigured`` -exception will be raised. +If there are any circular dependencies in the :setting:`DEPENDENCIES +` definition, an +:exc:`~django.core.exceptions.ImproperlyConfigured` exception will be raised. Advanced features of ``TransactionTestCase`` ============================================