путь к методу before_request в юнит-тестах фляги - PullRequest
0 голосов
/ 10 июля 2019

У меня есть приложение 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)

...