当Django无法连接到我想要测试的缓存时,我有代码处理ConnectionError
。
我遇到的问题是,如果没有实际禁用真正的缓存,我无法在测试中模拟它。
我尝试过使用Django设置覆盖:
with self.settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}}):
然而,上述仅模拟缓存,而不是它不可用。
有办法做到这一点吗?
提前致谢。
答案 0 :(得分:1)
您可以编写自己的缓存后端,提升ConnectionError
。
from django.core.cache.backends.base import BaseCache
class UnavailableCache(BaseCache):
...
def get(self, *args, **kwargs)
raise ConnectionError()
...
然后在self.settings
:
with self.settings(CACHES={'default': {'BACKEND': 'path.to.UnavailableCache'}}):