flask单元测试:如何测试已登录用户的请求
我正在为我的Flask Web应用程序编写一些单元测试,并且试图测试匿名用户发出的请求和登录用户之间的响应差异。
我正在使用Flask-Login
扩展程序来实现用户登录/注销。
显然,我可以执行匿名请求,但是如何模拟已登录用户的请求?
我认为发送标头中的session
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 user_id
在会话中寻找,你可以使用以下命令在测试中进行设置session_transaction
:
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')
用户对象myuserid
的ID 在哪里。
以上是 flask单元测试:如何测试已登录用户的请求 的全部内容, 来源链接: utcz.com/qa/417853.html