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

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

Сообщение Anonymous »

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

в моем app/urls.py:

Код: Выделить всё

url(r'^mymodel/create/$',
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)
Очевидно, что в представлении нет объекта hello. При попытке отправить запрос через браузер это не удается, как и ожидалось.

и даже дошло до замены «print 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.

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

Подробнее здесь: https://stackoverflow.com/questions/173 ... views-post

Вернуться в «Python»