Для некоторых страниц в приложении Flask, которое я создаю, у меня есть система перенаправления HTTPS следующим образом.
def requires_https(f, code=302):
"""defaults to temp. redirect (301 is permanent)"""
@wraps(f)
def decorated(*args, **kwargs):
passthrough_conditions = [
request.is_secure,
request.headers.get('X-Forwarded-Proto', 'http') == 'https',
'localhost' in request.url
]
if not any(passthrough_conditions):
if request.url.startswith('http://'):
url = request.url.replace('http://', 'https://')
r = redirect(url, code=code)
return r
return decorated
Если вы не запрашиваете версию HTTPS на странице, она перенаправляет вас на нее. Я хочу написать модульные тесты для этой службы. Я написал тот, который гарантирует, что вы перенаправлены на версию HTTPS (в основном, для 301 или 301). Я хочу проверить, что если вы запрашиваете https-версию страницы и уже находитесь на https, она не перенаправляет вас (в основном, на 200). Как мне получить Flask для отправки запроса https в unit test?