Ответ 1
Структура и сервер WSGI содержат обработчики, которые улавливают исключения и выполняют некоторые действия (отображают стек в теле, записывают обратную трассировку в файл журнала и т.д.). Webtest по умолчанию не показывает фактический ответ, который может быть полезен, если ваша фреймворк создает стек в теле. Я использую следующее расширение для Webtest, когда мне нужно посмотреть на тело ответа:
class BetterTestApp(webtest.TestApp):
"""A testapp that prints the body when status does not match."""
def _check_status(self, status, res):
if status is not None and status != res.status_int:
raise webtest.AppError(
"Bad response: %s (not %s)\n%s", res.status, status, res)
super(BetterTestApp, self)._check_status(status, res)
Получение большего контроля над тем, что происходит с исключением, зависит от того, какую инфраструктуру и сервер вы используете. Для встроенного модуля wsgiref
вы можете переопределить error_output, чтобы достичь желаемого.