2017-01-06 14 views
2

Djangoがキャッシュに接続できないときに私がテストしたい場合は、ConnectionErrorを処理するコードがあります。テストでDjangoキャッシュを使用してConnectionErrorを強制的に実行します

実際のキャッシュを実際に無効にしなければ、テスト内でシミュレートできないという問題が発生しました。私は、Djangoの設定のオーバーライドを使用してみましたが

:上記のキャッシュのみをシミュレートし、それが利用できないではないことが

with self.settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}}): 

これを行う方法はありますか?

ありがとうございます。

答えて

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'}}): 
+0

これは完璧です。ありがとうございました –

関連する問題