Python 烧瓶单元测试:如何测试登录用户的请求

Python 烧瓶单元测试:如何测试登录用户的请求,python,unit-testing,flask,flask-login,Python,Unit Testing,Flask,Flask Login,我正在为我的Flask web应用程序编写一些单元测试,并试图测试匿名用户和登录用户发出的请求之间的响应差异 我正在使用Flask Login扩展来实现用户登录/注销 显然,我可以执行匿名请求,但如何模拟登录用户的请求 我认为在标题中发送会话cookie就足够了,但它不起作用 headers = Headers({'Cookie':['WEBSITE_ID=%s; Domain=adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT;

我正在为我的Flask web应用程序编写一些单元测试,并试图测试匿名用户和登录用户发出的请求之间的响应差异

我正在使用
Flask Login
扩展来实现用户登录/注销

显然,我可以执行匿名请求,但如何模拟登录用户的请求

我认为在标题中发送
会话
cookie就足够了,但它不起作用

headers = Headers({'Cookie':['WEBSITE_ID=%s; Domain=adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value, 
                             'WEBSITE_ID=%s; Domain=.adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value,
                             'session="A VERY LONG STRING"; Path=/; HttpOnly',
                 ]})
rv = app.test_client().get('/', headers=headers)
其中,会话cookie值是我从浏览器中的真实登录中获得的值


我遗漏了什么?

Flask Login在会话中查找
用户id
,您可以在测试中使用以下设置:


其中,
myuserid
是您的用户id。

您知道为什么在修改会话后我在请求中发送cookie,应用程序却看不到它吗?是因为当我修改会话时,我已经发送了一些标题还是什么?
with app.test_client() as c:
    with c.session_transaction() as sess:
        sess['user_id'] = 'myuserid'
        sess['_fresh'] = True # https://flask-login.readthedocs.org/en/latest/#fresh-logins
    resp = c.get('/someurl')