Ejemplo n.º 1
0
def transparent(request: web.Request):
    response = yield from aiohttp.request(
        request.method,
        "%s://%s%s" % (request.scheme, request.session.endpoint.address, request.path),
        headers=request.headers,
        data=(yield from request.read())
    )
    return web.Response(
        status=response.status,
        headers=response.headers,
        body=(yield from response.read_and_close())
    )
Ejemplo n.º 2
0
def start_session(request: web.Request):
    session = request.session
    session.endpoint = AndroidEndpoint()
    try:
        yield from session.endpoint.start(session.desired_capabilities)
        headers = {k: v for k, v in request.headers.items() if k != hdrs.HOST}
        response = yield from aiohttp.request(
            request.method,
            "%s://%s%s" % (request.scheme, session.endpoint.address, request.path),
            headers=headers,
            data=(yield from request.read())
        )
        if response.status == 200:
            body = yield from response.json()
            session.session_id = session.remote_session_id = body.get('sessionId')
        else:
            session.close()
    except:
        session.close()
        raise
    return response