示例#1
0
 async def _create_connection(self, req: "ClientRequest",
                              traces: List["Trace"],
                              timeout: "ClientTimeout") -> ResponseHandler:
     handler = ResponseHandler(self._loop)
     handler.transport = StaticTransport()
     handler.protocol = ""
     return handler
示例#2
0
async def test_pause_resume_on_error(loop):
    proto = ResponseHandler(loop=loop)

    proto.pause_reading()
    assert proto._reading_paused

    proto.resume_reading()
    assert not proto._reading_paused
示例#3
0
async def test_reschedule_timeout(loop) -> None:
    proto = ResponseHandler(loop=loop)
    proto.set_response_params(read_timeout=1)
    assert proto._read_timeout_handle is not None
    h = proto._read_timeout_handle
    proto._reschedule_timeout()
    assert proto._read_timeout_handle is not None
    assert proto._read_timeout_handle is not h
示例#4
0
def function1313(arg899):
    var2603 = ResponseHandler(loop=arg899)
    var3844 = mock.Mock()
    var2603.connection_made(var3844)
    var2603.set_response_params(read_until_eof=True)
    var2603.data_received(b'HTTP\r\n\r\n')
    assert var2603.should_close
    assert var3844.close.called
    assert isinstance(var2603.exception(), http.HttpProcessingError)
示例#5
0
async def test_client_proto_bad_message(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    proto.set_response_params(read_until_eof=True)

    proto.data_received(b'HTTP\r\n\r\n')
    assert proto.should_close
    assert transport.close.called
    assert isinstance(proto.exception(), http.HttpProcessingError)
示例#6
0
async def test_uncompleted_message(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    proto.set_response_params(read_until_eof=True)

    proto.data_received(b'HTTP/1.1 301 Moved Permanently\r\n'
                        b'Location: http://python.org/')
    proto.connection_lost(None)

    exc = proto.exception()
    assert isinstance(exc, ServerDisconnectedError)
    assert exc.message.code == 301
    assert dict(exc.message.headers) == {'Location': 'http://python.org/'}
示例#7
0
async def test_client_proto_bad_message(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    proto.set_response_params(read_until_eof=True)

    proto.data_received(b'HTTP\r\n\r\n')
    assert proto.should_close
    assert transport.close.called
    assert isinstance(proto.exception(), http.HttpProcessingError)
示例#8
0
async def test_pause_resume_on_error(loop: Any) -> None:
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)

    proto.pause_reading()
    assert proto._reading_paused

    proto.resume_reading()
    assert not proto._reading_paused
示例#9
0
def function2409(arg846):
    var3842 = ResponseHandler(loop=arg846)
    var4517 = mock.Mock()
    var3842.connection_made(var4517)
    var3842.connection_lost(OSError())
    assert var3842.should_close
    assert isinstance(var3842.exception(), ClientOSError)
示例#10
0
async def test_oserror(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    proto.connection_lost(OSError())

    assert proto.should_close
    assert isinstance(proto.exception(), ClientOSError)
示例#11
0
async def test_pause_resume_on_error(loop) -> None:
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)

    proto.pause_reading()
    assert proto._reading_paused

    proto.resume_reading()
    assert not proto._reading_paused
示例#12
0
async def test_reschedule_timeout(loop):
    proto = ResponseHandler(loop=loop)
    proto.set_response_params(read_timeout=1)
    assert proto._read_timeout_handle is not None
    h = proto._read_timeout_handle
    proto._reschedule_timeout()
    assert proto._read_timeout_handle is not None
    assert proto._read_timeout_handle is not h
示例#13
0
async def test_pause_resume_on_error(loop):
    proto = ResponseHandler(loop=loop)

    proto.pause_reading()
    assert proto._reading_paused

    proto.resume_reading()
    assert not proto._reading_paused
示例#14
0
async def test_oserror(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    proto.connection_lost(OSError())

    assert proto.should_close
    assert isinstance(proto.exception(), ClientOSError)
示例#15
0
    def build_response(self, method: str, url: str, payload: str, *,
                       session: ClientSession, status: int) -> ClientResponse:
        response = session._response_class(
            method,
            URL(url),
            request_info=self.mock_module.Mock(),
            writer=self.mock_module.Mock(),
            continue100=None,
            timer=TimerNoop(),
            traces=[],
            loop=session.loop,
            session=session)
        response._headers = CIMultiDictProxy(
            CIMultiDict({'Content-Type': 'application/json'}))
        response.status = status
        if status >= 400:
            response.reason = payload

        response.content = StreamReader(ResponseHandler(session.loop))
        response.content.feed_data(str.encode(payload))
        response.content.feed_eof()
        return response
示例#16
0
def function886(arg913):
    var159 = ResponseHandler(loop=arg913)
    var159.pause_reading()
    assert var159._reading_paused
    var159.resume_reading()
    assert (not var159._reading_paused)
示例#17
0
def function759(arg791):
    var1906 = ResponseHandler(loop=arg791)
    var1870 = mock.Mock()
    var1906.connection_made(var1870)
    var2202 = mock.Mock()
    var2202.protocol = var1906
    var1906.data_received(b'HTTP/1.1 200 Ok\r\n\r\n')
    var1984 = ClientResponse('get', URL('http://def-cl-resp.org'))
    var1984._post_init(arg791)
    yield from var1984.start(var2202, read_until_eof=True)
    assert (not var1984.content.is_eof())
    var1906.data_received(b'0000')
    var4385 = yield from var1984.content.readany()
    assert (var4385 == b'0000')
    var1906.data_received(b'1111')
    var4385 = yield from var1984.content.readany()
    assert (var4385 == b'1111')
    var1906.connection_lost(None)
    assert var1984.content.is_eof()
示例#18
0
def function2542(arg1289):
    var1842 = ResponseHandler(loop=arg1289)
    var2463 = mock.Mock()
    var1842.connection_made(var2463)
    var1842.set_response_params(read_until_eof=True)
    var1842.data_received(
        b'HTTP/1.1 301 Moved Permanently\r\nLocation: http://python.org/')
    var1842.connection_lost(None)
    var2509 = var1842.exception()
    assert isinstance(var2509, ServerDisconnectedError)
    assert (var2509.message.code == 301)
    assert (dict(var2509.message.headers) == {
        'Location': 'http://python.org/',
    })
示例#19
0
async def test_client_protocol_readuntil_eof(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    conn = mock.Mock()
    conn.protocol = proto

    proto.data_received(b'HTTP/1.1 200 Ok\r\n\r\n')

    response = ClientResponse('get',
                              URL('http://def-cl-resp.org'),
                              writer=mock.Mock(),
                              continue100=None,
                              timer=TimerNoop(),
                              request_info=mock.Mock(),
                              traces=[],
                              loop=loop,
                              session=mock.Mock())
    proto.set_response_params(read_until_eof=True)
    await response.start(conn)

    assert not response.content.is_eof()

    proto.data_received(b'0000')
    data = await response.content.readany()
    assert data == b'0000'

    proto.data_received(b'1111')
    data = await response.content.readany()
    assert data == b'1111'

    proto.connection_lost(None)
    assert response.content.is_eof()
示例#20
0
async def test_empty_data(loop):
    proto = ResponseHandler(loop=loop)
    proto.data_received(b'')
示例#21
0
async def test_drop_timeout(loop):
    proto = ResponseHandler(loop=loop)
    proto.set_response_params(read_timeout=1)
    assert proto._read_timeout_handle is not None
    proto._drop_timeout()
    assert proto._read_timeout_handle is None
示例#22
0
async def test_eof_received(loop):
    proto = ResponseHandler(loop=loop)
    proto.set_response_params(read_timeout=1)
    assert proto._read_timeout_handle is not None
    proto.eof_received()
    assert proto._read_timeout_handle is None
示例#23
0
async def test_empty_data(loop: Any) -> None:
    proto = ResponseHandler(loop=loop)
    proto.data_received(b"")
示例#24
0
async def test_drop_timeout(loop):
    proto = ResponseHandler(loop=loop)
    proto.set_response_params(read_timeout=1)
    assert proto._read_timeout_handle is not None
    proto._drop_timeout()
    assert proto._read_timeout_handle is None
示例#25
0
async def test_client_protocol_readuntil_eof(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    conn = mock.Mock()
    conn.protocol = proto

    proto.data_received(b'HTTP/1.1 200 Ok\r\n\r\n')

    response = ClientResponse('get', URL('http://def-cl-resp.org'))
    response._post_init(loop, mock.Mock())
    await response.start(conn, read_until_eof=True)

    assert not response.content.is_eof()

    proto.data_received(b'0000')
    data = await response.content.readany()
    assert data == b'0000'

    proto.data_received(b'1111')
    data = await response.content.readany()
    assert data == b'1111'

    proto.connection_lost(None)
    assert response.content.is_eof()
示例#26
0
async def test_empty_data(loop):
    proto = ResponseHandler(loop=loop)
    proto.data_received(b'')
示例#27
0
async def test_schedule_timeout(loop: Any) -> None:
    proto = ResponseHandler(loop=loop)
    proto.set_response_params(read_timeout=1)
    assert proto._read_timeout_handle is not None
示例#28
0
 def stream_reader_factory(
         loop: 'Optional[asyncio.AbstractEventLoop]' = None):
     protocol = ResponseHandler(loop=loop)
     return StreamReader(protocol)
示例#29
0
async def test_eof_received(loop) -> None:
    proto = ResponseHandler(loop=loop)
    proto.set_response_params(read_timeout=1)
    assert proto._read_timeout_handle is not None
    proto.eof_received()
    assert proto._read_timeout_handle is None
示例#30
0
async def test_uncompleted_message(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    proto.set_response_params(read_until_eof=True)

    proto.data_received(b'HTTP/1.1 301 Moved Permanently\r\n'
                        b'Location: http://python.org/')
    proto.connection_lost(None)

    exc = proto.exception()
    assert isinstance(exc, ServerDisconnectedError)
    assert exc.message.code == 301
    assert dict(exc.message.headers) == {'Location': 'http://python.org/'}
示例#31
0
 def stream_reader_factory():
     protocol = ResponseHandler()
     return StreamReader(protocol)
示例#32
0
async def test_client_protocol_readuntil_eof(loop):
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    conn = mock.Mock()
    conn.protocol = proto

    proto.data_received(b'HTTP/1.1 200 Ok\r\n\r\n')

    response = ClientResponse('get', URL('http://def-cl-resp.org'))
    response._post_init(loop, mock.Mock())
    await response.start(conn, read_until_eof=True)

    assert not response.content.is_eof()

    proto.data_received(b'0000')
    data = await response.content.readany()
    assert data == b'0000'

    proto.data_received(b'1111')
    data = await response.content.readany()
    assert data == b'1111'

    proto.connection_lost(None)
    assert response.content.is_eof()
示例#33
0
async def test_client_protocol_readuntil_eof(loop) -> None:
    proto = ResponseHandler(loop=loop)
    transport = mock.Mock()
    proto.connection_made(transport)
    conn = mock.Mock()
    conn.protocol = proto

    proto.data_received(b'HTTP/1.1 200 Ok\r\n\r\n')

    response = ClientResponse('get', URL('http://def-cl-resp.org'),
                              writer=mock.Mock(),
                              continue100=None,
                              timer=TimerNoop(),
                              request_info=mock.Mock(),
                              traces=[],
                              loop=loop,
                              session=mock.Mock())
    proto.set_response_params(read_until_eof=True)
    await response.start(conn)

    assert not response.content.is_eof()

    proto.data_received(b'0000')
    data = await response.content.readany()
    assert data == b'0000'

    proto.data_received(b'1111')
    data = await response.content.readany()
    assert data == b'1111'

    proto.connection_lost(None)
    assert response.content.is_eof()