Skip to content

Commit

Permalink
[1.5.x] Fixed #17787 -- Documented reset caches by setting_changed si…
Browse files Browse the repository at this point in the history
…gnal

Backport of fc2681b from master.
  • Loading branch information
claudep committed Oct 27, 2012
1 parent cb28175 commit c5da577
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions docs/topics/testing.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1586,15 +1586,23 @@ The decorator can also be applied to test case classes::
the original ``LoginTestCase`` is still equally affected by the
decorator.

.. note::

When overriding settings, make sure to handle the cases in which your app's
code uses a cache or similar feature that retains state even if the
setting is changed. Django provides the
:data:`django.test.signals.setting_changed` signal that lets you register
callbacks to clean up and otherwise reset state when settings are changed.
Note that this signal isn't currently used by Django itself, so changing
built-in settings may not yield the results you expect.
When overriding settings, make sure to handle the cases in which your app's
code uses a cache or similar feature that retains state even if the
setting is changed. Django provides the
:data:`django.test.signals.setting_changed` signal that lets you register
callbacks to clean up and otherwise reset state when settings are changed.

Django itself uses this signal to reset various data:

=========================== ========================
Overriden settings Data reset
=========================== ========================
USE_TZ, TIME_ZONE Databases timezone
TEMPLATE_CONTEXT_PROCESSORS Context processors cache
TEMPLATE_LOADERS Template loaders cache
SERIALIZATION_MODULES Serializers cache
LOCALE_PATHS, LANGUAGE_CODE Default translation and loaded translations
=========================== ========================

Emptying the test outbox
~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down

0 comments on commit c5da577

Please sign in to comment.