Тестовый клиент Django post () возвращает 302, несмотря на ошибку представления post ()

В настоящее время я пишу некоторые базовые тесты, чтобы убедиться, что страницы в Django-приложении среднего размера правильно получают и отправляют. Однако, используя django.test.client.Client isn 'т надежно терпит неудачу, когда это должно быть. Он возвращает ответ 302, даже когда естьОчевидно, я поместил ошибки в мой код.

в моем приложении / urls.py:

url(r'^mymodel/create/

Затем, в попытках преднамеренно создать ответ 500, я сделал следующее:

class MyModelCreateView(MyModelView, CreateView):

    def post(self, request, *args, **kwargs):
        print self.hello
        self.object = MyModel()
        return super(MyModelCreateView, self).post(request, *args, **kwargs)

Очевидно, что мнение неУ меня нет объекта под названием Привет. Это терпит неудачу, как и ожидалось, при попытке отправить запрос через браузер.

и даже дошло до замены "печать self.hello " с

return HttpResponse(status = 500)

и все же я все еще получаю следующее:

#We have a model called Client, so it 
#is imported as RequestClient to avoid conflicts
In [1]: from django.test.client import Client as RequestClient

In [2]: client = RequestClient()

In [3]: response = client.post("/app/mymodel/create/")

In [4]: response.status_code
Out[4]: 302

Очевидно, что проблема здесь между клавиатурой и креслом, так какНет причин, по которым Client () / RequestClient () не долженверните ошибку 500, если все сделано правильно. Даже некоторые проблемы возникают, когда я получаю 302 ответа на запросы POST вместо 200 ответов, но это может быть потому, что мыиспользовать HttpRedirect.

Кто-нибудь знает, что может быть проблема здесь? Для справки яm на Python 2.7 и Django 1.5 (хотя мне может потребоваться совместимость с Django 1.4).

, views.MyModelView.as_view(), name = 'my_model_create'),

Затем, в попытках преднамеренно создать ответ 500, я сделал следующее:

class MyModelCreateView(MyModelView, CreateView):

    def post(self, request, *args, **kwargs):
        print self.hello
        self.object = MyModel()
        return super(MyModelCreateView, self).post(request, *args, **kwargs)

Очевидно, что мнение неУ меня нет объекта под названием Привет. Это терпит неудачу, как и ожидалось, при попытке отправить запрос через браузер.

и даже дошло до замены "печать self.hello " с

return HttpResponse(status = 500)

и все же я все еще получаю следующее:

#We have a model called Client, so it 
#is imported as RequestClient to avoid conflicts
In [1]: from django.test.client import Client as RequestClient

In [2]: client = RequestClient()

In [3]: response = client.post("/app/mymodel/create/")

In [4]: response.status_code
Out[4]: 302

Очевидно, что проблема здесь между клавиатурой и креслом, так какНет причин, по которым Client () / RequestClient () не долженверните ошибку 500, если все сделано правильно. Даже некоторые проблемы возникают, когда я получаю 302 ответа на запросы POST вместо 200 ответов, но это может быть потому, что мыиспользовать HttpRedirect.

Кто-нибудь знает, что может быть проблема здесь? Для справки яm на Python 2.7 и Django 1.5 (хотя мне может потребоваться совместимость с Django 1.4).

Ответы на вопрос(1)

Ваш ответ на вопрос