以下简化代码是在我的 Flask 应用程序中定义的。
def select_url_for():
if request.is_secure:
return 's3'
return 'local'
我尝试过这样的测试,它适用于 HTTP。
def test_select_url_for(self):
with self.app.test_request_context():
self.assertTrue(select_url_for() == 'local')
如何使用 Flask 对 HTTPS 执行类似的测试?
我找到了this ,但问题尚未得到解答。我需要在 HTTPS 测试模式下运行 Flask。
request.is_secure
检查wsgi.url_scheme
环境变量。通过使用 https
覆盖它,使 request.is_secure
返回 True
:
def test_select_url_for(self):
with self.app.test_request_context(environ_overrides={
'wsgi.url_scheme': 'https'
}):
self.assertEqual(select_url_for(), 'local')
顺便说一句,使用 assertEqual(a, b)
而不是 assertTrue(a == b)
,它可以为您提供更易读的断言失败消息。
我是一名优秀的程序员,十分优秀!