2010-07-10 2 views
2

문제점 : Dagango 프로젝트에 UpdateCacheMiddleware 및 FetchFromCacheMiddleware를 추가하면 unittest 오류가 발생합니다. 이에 상관없이 내가 사용하는 CACHE_BACKEND의이다 (지금 내가 locmem을 사용하고 있습니다 : //하지만이 파일을 사용할 때 오류가 동일합니다 : /// path_to_cache)Django 캐시를 사용하면 contrib.auth 단위 테스트가 실패합니다.

내 미들웨어 :

MIDDLEWARE_CLASSES = (
    'django.middleware.cache.UpdateCacheMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.cache.FetchFromCacheMiddleware', 
) 

모두 내 테스트 실패는 아래와 같이 'NoneType'개체가 unsubscriptable입니다

====================================================================== 
Error: test_last_login (django.contrib.auth.tests.remote_user.RemoteUserTest) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "C:\Python26\lib\site-packages\django\contrib\auth\tests\remote_user.py", 
line 87, in test_last_login 
    self.assertNotEqual(default_login, response.context['user'].last_login) 
TypeError: 'NoneType' object is unsubscriptable 

뭔가 누락 (또는 뭔가 잘못하고) 나는이 문제에 대한 웹 주위 수색로,하지만 아무도 갖고있는 것 같아요되어야합니다 그것을 만났습니다.

단계 재현하기 :

  1. 새로운 장고 프로젝트 (django-admin.py startproject MyProject를)를 시작하고 구성 settings.py
  2. 의 settings.py 두 캐시 미들웨어를 추가 할 CACHE_BACKEND 추가 장고에서
  3. 실행 파이썬 manage.py 테스트

주 : THER e는 dummy : // cache를 사용할 때 단 하나의 테스트 실패 일 뿐이며 다음에서 문서화됩니다. http://code.djangoproject.com/ticket/11640

답변

4

해결 방법은 CACHE_MIDDLEWARE_SECONDS를 0으로 설정하는 것입니다. dev 환경에서 0으로 설정하십시오.) 이렇게하면 django.contrib 테스트가 모두 통과 할 수 있습니다.