我正在尝试为自定义错误页面视图编写测试:-
可以找到文档
here
here
:-
if settings.DEBUG:
urlpatterns += [
url(r'^404/$', page_not_found_view),
url(r'^500/$', my_custom_error_view),
url(r'^400/$', bad_request_view),
url(r'^403/$', permission_denied_view),
]
handler404 = page_not_found_view
handler500 = my_custom_error_view
handler403 = permission_denied_view
handler400 = bad_request_view
def page_not_found_view(request):
t = loader.get_template('error/HTTP404.html')
html = html = t.render({})
return HttpResponseNotFound(html)
def my_custom_error_view(request):
t = loader.get_template('error/HTTP500.html')
html = html = t.render({})
return HttpResponseServerError(html)
def permission_denied_view(request):
t = loader.get_template('error/HTTP403.html')
html = html = t.render({})
return HttpResponseForbidden(html)
def bad_request_view(request):
t = loader.get_template('error/HTTP400.html')
html = html = t.render({})
return HttpResponseBadRequest(html)
500
参观
/500
等等
setting.DEBUG=True
默认情况下,测试用例在
DEFAULT=False
我试着用
@override_settings
@override_settings(DEBUG=True)
class ErroCodeUrl(TestCase):
def test_400_error(self):
response = self.client.get('/400/')
self.assertEqual(response.status_code, 500)
def test_403_error(self):
response = self.client.get('/403/')
self.assertEqual(response.status_code, 500)
def test_404_error(self):
response = self.client.get('/404/')
self.assertEqual(response.status_code, 500)
def test_500_error(self):
response = self.client.get('/500/')
self.assertEqual(response.status_code, 500)
但是用这个
@override\u设置
没有任何区别,无论有没有它,我都会得到相同的断言错误。我正在
404状态代码
每次测试,即
对于
test_500_error
响应=自身。客户获取(“/500/”)
对于
test_400_error
:-
断言错误:404!=400
笔记
is returned when i visited these url with
调试=False“”。