Да, можно переопределить настройку. Из Django documentation: Testing:
Для целей тестирования часто бывает полезно изменить настройки временно и вернуться к исходному значению после выполнения коды тестирования. Для этого случая использования Django предоставляет стандартный контекст Python менеджер ... settings()
, который может быть использован, как это:
from django.test import TestCase
class LoginTestCase(TestCase):
def test_login(self):
# Override the LOGIN_URL setting
with self.settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}}):
response = self.client.get(...)
Я тестировал выше подход с несколькими других настройками сам, но не с конкретным кэшем но это общая идея.
EDIT (кредиты @Alasdair):
пересортицы конкретной настройки переопределения следующее предупреждение можно найти в документации:
Изменяя настройки CACHES
можно, но немного сложнее, если вы используют внутренние элементы, которые используют кеширование, например django.contrib.sessions
. Например, вам придется повторно инициализировать сессионный сервер в тесте, который использует кешированные сеансы и переопределяет CACHES
.
Переопределение 'параметр CACHES' должен работать большую часть времени, но вы можете столкнуться с проблемами, иногда. В документах есть [предупреждение] (https://docs.djangoproject.com/en/1.8/topics/testing/tools/#django.test.modify_settings). – Alasdair
Правильно, спасибо @Alasdair за эту информацию. – Wtower