Commit fc2681b2 authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #17787 -- Documented reset caches by setting_changed signal

parent b7d81715
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -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.

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
~~~~~~~~~~~~~~~~~~~~~~~~