2012-10-08 5 views
5

장고보기 용 unittest를 작성하고 있습니다. 내 견해 중 하나가 예상치 못한 리디렉션 코드 301을 반환하는 것을 관찰했습니다.
여기 내 views.py가 이전에 언급되었습니다.장고 테스트 클라이언트는 URL에 액세스 할 때 301 리디렉션을 얻습니다.

def index(request): 
    return render(request, 'index.html', 
        {'form': QueryForm()}) 

def query(request): 
    if request.is_ajax(): 
     form = QueryForm(request.POST) 
     return HttpResponse('valid') 

아래는 urls.py입니다.

urlpatterns = patterns('', 
     url(r'^$', 'core.views.index'), 
     url(r'^query/$', 'core.views.query') 
     ) 

그리고 unittest가 실패합니다.

def so_test(self): 
    response = self.client.post('/') 
    self.assertEquals(response.status_code, 200) 

    response = self.client.post('/query', {}) 
    self.assertEquals(response.status_code, 200) 

제 질문은 : 상태 301이 반환되는 이유는 무엇입니까?

+0

(301) 어느 하나를 반환? 전체 코드입니까? –

+0

@DanielRoseman 둘째, 미안하지만 분명치 않다. –

답변

25

/query/과 일치하는 URL을 정의했지만 /query을 테스트하고 있습니다. Django가 설정에서 APPEND_SLASH=True이므로 후행 슬래시가있는 URL로 리디렉션됩니다.

당신은 아마 당신의 테스트를 변경하려면

:

response = self.client.post('/query/', {}) 
+0

예, 설명이 많이 있습니다! 감사합니다 :) 그것은 지금 작동합니다. –

관련 문제