【发布时间】:2014-04-19 02:10:50
【问题描述】:
我正在尝试为使用 OpenID 进行身份验证的烧瓶应用程序编写一些单元测试。由于似乎无法通过 OpenID 登录测试客户端(我问了这个问题,但没有收到任何回复:Flask OpenID unittest),我正在考虑在我的测试中覆盖 g.user,所以我尝试了来自http://flask.pocoo.org/docs/testing/#faking-resources-and-context 的代码 sn-p 并按预期工作。
不幸的是,当使用 flask-login 时,g.user 在设置的 before_request 包装器中被覆盖
g.user = current_user
current_user 是匿名的,所以我的测试用例被破坏了。一种解决方法是仅在测试模式下执行 before_request 包装器代码,但您需要在生产代码中添加特定于测试的逻辑似乎很蹩脚。我也尝试过处理请求上下文,但 g.user 最终仍会被覆盖。关于解决这个问题的干净方法的任何想法?
【问题讨论】:
标签: python unit-testing flask flask-login