Python 烧瓶单元测试:如何测试登录用户的请求
我正在为我的Flask web应用程序编写一些单元测试,并试图测试匿名用户和登录用户发出的请求之间的响应差异 我正在使用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 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')