我正在尝试为 OpenID 的烧瓶应用程序编写单元测试,但在调用时
oid.try_login(<oid provider>, <params>)
我收到一个错误:
RuntimeError:
<class 'flask.testing.FlaskClient'>
不支持重定向到外部目标
所以,像每个优秀的 SO 用户一样,我四处寻找一些解决方案:
- 使用 NoExtRef 烧瓶扩展伪装 oid 提供程序。我不确定这在应用程序级别是否可行,因为我假设 flask-openid 与 oid url 混淆(当我尝试它时它只是将我重定向到原始页面)。但这似乎很丑陋,因为我正在严格为单元测试进行代码更改。
- 创建我自己的 oid 服务器,但这可能仍然是一个外部重定向(我会在我绝望后尽快尝试)。
我想另一种选择是忽略为登录编写单元测试,而只是使用很棒的 Flask 测试框架在 Flask.g 中设置用户。但我更愿意保留登录单元测试。