我如何以编程方式(不会像我当前那样在登录页面上发布凭据)在使用Flask-login的测试期间登录用户?
我尝试了here描述的解决方案(这似乎是以编程方式登录的唯一解决方案),但在我的情况下它不起作用,因为unauthorized_handler
是[24.02.16 15:28:07] [131.231.236.97] Invalid FFMPEG Path `/var/www/html/phpffmpeg/ffmpeg\bin\ffmpeg.exe`!
[24.02.16 15:28:09] [131.231.236.97] ffmpeg-progress: FFMPEG progress log does not exist! FILE: `/var/www/html/phpffmpeg/logs/47fc097c.ffmpeg.log`
,我得到302响应如果用户未登录则触发(如果用户未经过身份验证,我的处理程序将重定向到登录页面)。
答案 0 :(得分:1)
我解决了!我认为IMO是最优雅,最简单的解决方案:
# we need this:
from flask_login import encode_cookie
# ...then in the test:
with self.client.session_transaction():
self.client.set_cookie(
self.app.config['SERVER_NAME'],
'remember_token',
encode_cookie(user_id)
)
# assertions here... User is now logged in! \0/
实际代码只有2行(这里我的格式只是为了可读性:P)