2017-01-06 2 views
2

장고가 캐시에 연결할 수 없을 때 ConnectionError을 처리하는 코드가 있습니다.이 코드는 테스트하고 싶습니다.테스트에서 Django 캐시로 ConnectionError를 강제 실행합니다.

실제로 실제 캐시를 사용 중지하지 않으면 테스트에서 시뮬레이션 할 수 없다는 문제가 발생했습니다. 내가 장고 설정 재정의를 사용하여 시도했다

: 위는 캐시를 시뮬레이션하고, 사용할 수없는하지 않는 것이 그러나

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

이 완벽합니다. 고맙습니다 –

관련 문제