Beispiel #1
0
def test_client_invoke_with_unexpected_error(client):
    def raise_error(_):
        raise ValueError("temporary error")

    transport = RequestsTransport()
    transport.middleware.request(raise_error)
    client.transport = transport

    with pytest.raises(ValueError):
        client.invoke("Foo")
 def __init__(
     self,
     config: dict,
     transport: typing.Optional[Transport] = None,
     middleware: typing.Optional[Middleware] = None,
     logger: typing.Optional[logging.Logger] = None,
 ):
     cfg, cred = self._parse_dict_config(config)
     self.config = cfg
     self.credential = cred
     self.transport = transport or RequestsTransport()
     self.logger = logger or log.default_logger
     if middleware is None:
         middleware = Middleware()
         middleware.response(self.logged_response_handler)
         middleware.request(self.logged_request_handler)
         middleware.exception(self.logged_exception_handler)
     self._middleware = middleware
def transport():
    return RequestsTransport()
Beispiel #4
0
def transport_factory():
    return RequestsTransport()
# -*- coding: utf-8 -*-

import logging
import sys
from ucloud import version
from ucloud.core.client._cfg import Config
from ucloud.core.transport import Transport, RequestsTransport, Request, Response
from ucloud.core.utils import log
from ucloud.core.utils.middleware import Middleware
from ucloud.core import auth, exc

default_transport = RequestsTransport()


class Client(object):
    def __init__(self, config, transport=None, middleware=None, logger=None):
        cfg, cred = self._parse_dict_config(config)
        self.config = cfg
        self.credential = cred
        self.transport = transport or default_transport
        self.logger = logger or log.default_logger
        if middleware is None:
            middleware = Middleware()
            middleware.response(self.logged_response_handler)
            middleware.request(self.logged_request_handler)
        self._middleware = middleware

    def invoke(self, action, args=None, **options):
        """ invoke will invoke the action with arguments data and options

        :param str action: the api action, like `CreateUHostInstance`