Esempio n. 1
0
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()
Esempio n. 2
0
    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