我正在尝试在Flask中测试自定义错误页面(在此例中为404
)。
我已将自定义的404页面定义为:
@app.errorhandler(404)
def page_not_found(e):
print "Custom 404!"
return render_template('404.html'), 404
当在浏览器中访问未知页面时,这个功能完美地运行(我可以在stdout中看到“Custom 404!”并且我的自定义内容可见)。然而,当尝试使用nose
通过unittest
触发404时,标准/服务器404页面会呈现。我没有收到日志消息或者我尝试测试的自定义内容。
我的测试用例定义如下:
class MyTestCase(TestCase):
def setUp(self):
self.app = create_app()
self.app_context = self.app.app_context()
self.app.config.from_object('config.TestConfiguration')
self.app.debug = False # being explicit to debug what's going on...
self.app_context.push()
self.client = self.app.test_client()
def tearDown(self):
self.app_context.pop()
def test_custom_404(self):
path = '/non_existent_endpoint'
response = self.client.get(path)
self.assertEqual(response.status_code, 404)
self.assertIn(path, response.data)
我在我的测试应用程序中明确将app.debug
设置为False
。我还需要明确设置其他内容吗?
TESTING
设置为True
。这还取决于您如何设置日志记录器。 - corvid