烧瓶单元测试:如何测试请求从登录的用户(flask unit test: how to test r

2019-09-01 05:45发布

我在写我的瓶的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的值是我从我的浏览器真正的登录得到的值。

我在想什么?

Answer 1:

烧瓶登录查找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 unit test: how to test request from logged in user