httprettybackend.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:placebo 作者: huseyinyilmaz 项目源码 文件源码
def get_decorator(placebo):
    """Create a decorator for placebo object."""
    def decorator(fun):
        def _wrapper(*args, **kwargs):
            def _run():
                method = placebo._get_method()

                def get_body(request, uri, _headers):
                    # For some edge cases
                    request_headers = dict(request.headers)
                    # request_headers = headers
                    url = parse.urlparse(uri)
                    response_headers = placebo._get_headers(url,
                                                            request_headers,
                                                            request.body)

                    response_body = placebo._get_body(url,
                                                      request_headers,
                                                      request.body)
                    status = placebo._get_status(url,
                                                 request_headers,
                                                 request.body)
                    return (status, response_headers, response_body)
                    # return response.status, response.headers, response.data
                url = placebo._get_url()
                if isinstance(url, (parse.ParseResult, parse.SplitResult)):
                    url = url.geturl()

                httpretty.register_uri(getattr(httpretty, method),
                                       url,
                                       body=get_body)
                response = fun(*args, **kwargs)
                return response

            # run-time check if httppretty is enabled.
            # We must enable httpretty only once.
            # This is necessary to chain
            # multiple mock objects together.
            if not httpretty.is_enabled():
                _run = httpretty.activate(_run)
            return _run()
        return _wrapper
    return decorator
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号