def async_pipeline_client_builder():
    """Build a client that use the "send" callback as final transport layer

    send will receive "request" and kwargs as any transport layer
    """
    def create_client(send_cb):
        class TestHttpTransport(AsyncHttpTransport):
            async def open(self): pass
            async def close(self): pass
            async def __aexit__(self, *args, **kwargs): pass

            async def send(self, request, **kwargs):
                return await send_cb(request, **kwargs)

        return AsyncPipelineClient(
            'http://example.org/',
            pipeline=AsyncPipeline(
                transport=TestHttpTransport()
            )
        )
    return create_client