如何使用 Flask test_client 设置请求参数?
How to set request args with Flask test_client?
我必须测试从 request.args
获取特定信息的特定视图。
我不能模拟这个,因为视图中的很多东西都使用请求对象。
我能想到的唯一选择是手动设置 request.args
.
我可以用 test_request_context()
做到这一点,例如:
with self.app.test_request_context() as req:
req.request.args = {'code': 'mocked access token'}
MyView()
现在此视图中的请求将具有我设置的参数。
但是我需要调用我的视图,而不仅仅是初始化它,所以我使用这个:
with self.app.test_client() as c:
resp = c.get('/myview')
但我不知道如何以这种方式操作请求参数。
我试过这个:
with self.app.test_client() as c:
with self.app.test_request_context() as req:
req.request.args = {'code': 'mocked access token'}
resp = c.get('/myview')
但这并没有设置 request.args
。
将 query_string
参数传递给 c.get
,它可以是 dict
、MultiDict
或已编码的字符串。
with app.test_client() as c:
r = c.get('/', query_string={'name': 'davidism'})
test client request methods pass their arguments to Werkzeug's EnvironBuilder
,这是记录的地方。
我必须测试从 request.args
获取特定信息的特定视图。
我不能模拟这个,因为视图中的很多东西都使用请求对象。
我能想到的唯一选择是手动设置 request.args
.
我可以用 test_request_context()
做到这一点,例如:
with self.app.test_request_context() as req:
req.request.args = {'code': 'mocked access token'}
MyView()
现在此视图中的请求将具有我设置的参数。 但是我需要调用我的视图,而不仅仅是初始化它,所以我使用这个:
with self.app.test_client() as c:
resp = c.get('/myview')
但我不知道如何以这种方式操作请求参数。
我试过这个:
with self.app.test_client() as c:
with self.app.test_request_context() as req:
req.request.args = {'code': 'mocked access token'}
resp = c.get('/myview')
但这并没有设置 request.args
。
将 query_string
参数传递给 c.get
,它可以是 dict
、MultiDict
或已编码的字符串。
with app.test_client() as c:
r = c.get('/', query_string={'name': 'davidism'})
test client request methods pass their arguments to Werkzeug's EnvironBuilder
,这是记录的地方。