在烧瓶单元测试中的before_request方法路径

时间:2019-07-10 10:52:04

标签: flask mocking python-unittest python-mock

我有一个使用过的Flask应用, 我正在努力验证到服务器的所有流量(/login和另一个终结点除外)

我使用@app.before_request装饰器实现了这一点,就像这样:

@app.before_request
def authenticate():
    if any(request.path in s for s in NO_AUTH_ENDPOINTS):
        return
    # authentication process....

这可以正常工作,但是当我进入由于身份验证而失败的烧瓶单元测试时,我没有设法修补该功能,并且所有测试都不断出现未经授权的错误。

我尝试了以下操作:

@patch('authentication.authenticate')
def post(self, body, mock_auth, id=None, token='test_token', **params):
    mock_auth.return_value = None
    return self.app.post(self._get_url(id, params),
                         data=json.dumps(body),
                         follow_redirects=True,
                         content_type='application/json',
                         headers={'Token': token})

还有:

@patch('autoai.server.app.before_request')
def post(self, body, mock_request, id=None, token='test_token', **params):
    mock_request.return_value = None
    return self.app.post(self._get_url(id, params),
                         data=json.dumps(body),
                         follow_redirects=True,
                         content_type='application/json',
                         headers={'Token': token})

我使用flast test_app可能是相关的,但我仍然不知道如何正确修补begfore_request(self.app = app.test_client

0 个答案:

没有答案