def test_introspection_query_is_cached_only_once(cache_get_mock, cache_set_mock, api_client): cache_get_mock.return_value = ExecutionResult(data=INTROSPECTION_RESULT) cache_key = generate_cache_key(INTROSPECTION_QUERY) response = api_client.post_graphql(INTROSPECTION_QUERY) content = get_graphql_content(response) assert content["data"] == INTROSPECTION_RESULT cache_get_mock.assert_called_once_with(cache_key) cache_set_mock.assert_not_called()
async def prepare(self): """Метод вернет объект пользователя исходя из информации токена, что был передан в заголовке с имененем 'token', в объекте request. Срабатывает перед методами get/post/... """ from modules.user.repositories import UserRepository repository_user = UserRepository( client_motor=self.settings.get("client_motor")) current_user = None try: token = Token.decode_from_str( repository_user, self.request.headers.get(JWT_NAME_HEADER, "")) is_valid = await token.is_valid() if is_valid: current_user = await token.get_user() except JWTError as _: pass if not current_user: raise Response( ExecutionResult(errors=("Пользователь не авторизован", ))) self.current_user = current_user