コード例 #1
0
ファイル: test_http_parser.py プロジェクト: popravich/aiohttp
 def test_http_request_parser_two_slashes(self):
     out = aiohttp.DataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpRequestParser()(out, buf)
     next(p)
     try:
         p.send(b'get //path HTTP/1.1\r\n\r\n')
     except StopIteration:
         pass
     self.assertEqual(('GET', '//path', (1, 1), deque(), False, None),
                      out._buffer[0])
コード例 #2
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
    def test_http_payload_parser_deflate(self):
        msg = protocol.RawRequestMessage(
            'GET', '/', (1, 1), [('CONTENT-LENGTH', len(self._COMPRESSED))],
            None, 'deflate')

        out = aiohttp.DataQueue()
        buf = aiohttp.ParserBuffer()
        p = protocol.HttpPayloadParser(msg)(out, buf)
        next(p)
        self.assertRaises(StopIteration, p.send, self._COMPRESSED)
        self.assertEqual(b'data', b''.join(out._buffer))
コード例 #3
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
 def test_parse_chunked_payload(self):
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpPayloadParser(None).parse_chunked_payload(out, buf)
     next(p)
     try:
         p.send(b'4\r\ndata\r\n4\r\nline\r\n0\r\ntest\r\n')
     except StopIteration:
         pass
     self.assertEqual(b'dataline', b''.join(out._buffer))
     self.assertEqual(b'', bytes(buf))
コード例 #4
0
ファイル: test_http_parser.py プロジェクト: popravich/aiohttp
 def test_http_payload_parser_chunked(self):
     msg = protocol.RawRequestMessage('GET', '/', (1, 1),
                                      [('TRANSFER-ENCODING', 'chunked')],
                                      None, None)
     out = aiohttp.DataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpPayloadParser(msg)(out, buf)
     next(p)
     self.assertRaises(StopIteration, p.send,
                       b'4;test\r\ndata\r\n4\r\nline\r\n0\r\ntest\r\n')
     self.assertEqual(b'dataline', b''.join(out._buffer))
コード例 #5
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
 def test_parse_chunked_payload_chunks(self):
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpPayloadParser(None).parse_chunked_payload(out, buf)
     next(p)
     p.send(b'4\r\ndata\r')
     p.send(b'\n4')
     p.send(b'\r')
     p.send(b'\n')
     p.send(b'line\r\n0\r\n')
     self.assertRaises(StopIteration, p.send, b'test\r\n')
     self.assertEqual(b'dataline', b''.join(out._buffer))
コード例 #6
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
    def test_parse_eof_payload(self):
        out = aiohttp.DataQueue()
        buf = aiohttp.ParserBuffer()
        p = protocol.HttpPayloadParser(None).parse_eof_payload(out, buf)
        next(p)
        p.send(b'data')
        try:
            p.throw(aiohttp.EofStream())
        except aiohttp.EofStream:
            pass

        self.assertEqual([b'data'], list(out._buffer))
コード例 #7
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
 def test_http_request_parser_eof(self):
     # HttpRequestParser does not fail on EofStream()
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpRequestParser()(out, buf)
     next(p)
     p.send(b'get /path HTTP/1.1\r\n')
     try:
         p.throw(aiohttp.EofStream())
     except StopIteration:
         pass
     self.assertFalse(out._buffer)
コード例 #8
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
 def test_http_response_parser_no_reason(self):
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     try:
         p.send(b'HTTP/1.1 200\r\n\r\n')
     except StopIteration:
         pass
     v, s, r = out._buffer[0][:3]
     self.assertEqual(v, (1, 1))
     self.assertEqual(s, 200)
     self.assertEqual(r, '')
コード例 #9
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
    def test_http_payload_parser_length(self):
        msg = protocol.RawRequestMessage('GET', '/', (1, 1),
                                         [('CONTENT-LENGTH', '2')], None, None)
        out = aiohttp.DataQueue()
        buf = aiohttp.ParserBuffer()
        p = protocol.HttpPayloadParser(msg)(out, buf)
        next(p)
        try:
            p.send(b'1245')
        except StopIteration:
            pass

        self.assertEqual(b'12', b''.join(out._buffer))
        self.assertEqual(b'45', bytes(buf))
コード例 #10
0
def function1795():
    var3605 = mock.Mock()
    var1010 = mock.Mock()
    var286 = ClientResponse('get', URL('http://del-cl-resp.org'), request_info=var1010)
    var286._post_init(var3605)
    var3605.get_debug = mock.Mock()
    var3605.get_debug.return_value = True
    var4238 = mock.Mock()
    var4238.protocol = aiohttp.DataQueue(loop=var3605)
    var4238.protocol.set_response_params = mock.Mock()
    var4238.protocol.set_exception(http.HttpProcessingError())
    with pytest.raises(aiohttp.ClientResponseError) as var341:
        yield from var286.start(var4238)
    assert (var341.value.var1010 is var1010)
コード例 #11
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
    def test_parse_length_payload(self):
        out = aiohttp.DataQueue()
        buf = aiohttp.ParserBuffer()
        p = protocol.HttpPayloadParser(None).parse_length_payload(out, buf, 4)
        next(p)
        p.send(b'da')
        p.send(b't')
        try:
            p.send(b'aline')
        except StopIteration:
            pass

        self.assertEqual(3, len(out._buffer))
        self.assertEqual(b'data', b''.join(out._buffer))
        self.assertEqual(b'line', bytes(buf))
 def function352(self):
     with function147(self.attribute2267, router=Class273) as var4292:
         var4405 = var4292.var4405('method', 'post')
         var4536 = os.path.dirname(__file__)
         var116 = os.path.join(var4536, 'sample.key')
         with open(var116, 'rb') as var3049:
             var3571 = var3049.read()
         var4736 = aiohttp.DataQueue(loop=self.attribute2267)
         var4736.feed_data(var3571[:100], 100)
         var4736.feed_data(var3571[100:], len(var3571[100:]))
         var4736.feed_eof()
         var457 = client.ClientSession(loop=self.attribute2267)
         var137 = self.attribute2267.run_until_complete(var457.request('post', var4405, data=var4736, headers={'Content-Length': str(len(var3571)), }))
         var2098 = self.attribute2267.run_until_complete(var137.json())
         var137.close()
         var457.close()
         self.assertEqual(str(len(var3571)), var2098['headers']['Content-Length'])
コード例 #13
0
    def setUp(self):
        self.loop = asyncio.new_event_loop()
        asyncio.set_event_loop(None)

        self.wsgi = unittest.mock.Mock()
        self.stream = unittest.mock.Mock()
        self.transport = unittest.mock.Mock()
        self.transport.get_extra_info.return_value = '127.0.0.1'

        self.headers = []
        self.message = protocol.RawRequestMessage('GET', '/path', (1, 0),
                                                  self.headers, True,
                                                  'deflate')
        self.payload = aiohttp.DataQueue()
        self.payload.feed_data(b'data')
        self.payload.feed_data(b'data')
        self.payload.feed_eof()
コード例 #14
0
async def test_http_processing_error(session):
    loop = mock.Mock()
    request_info = mock.Mock()
    response = ClientResponse(
        'get', URL('http://del-cl-resp.org'), request_info=request_info)
    response._post_init(loop, session)
    loop.get_debug = mock.Mock()
    loop.get_debug.return_value = True

    connection = mock.Mock()
    connection.protocol = aiohttp.DataQueue(loop=loop)
    connection.protocol.set_response_params = mock.Mock()
    connection.protocol.set_exception(http.HttpProcessingError())

    with pytest.raises(aiohttp.ClientResponseError) as info:
        await response.start(connection)

    assert info.value.request_info is request_info
コード例 #15
0
    def test_POST_DataQueue(self):
        with test_utils.run_server(self.loop, router=Functional) as httpd:
            url = httpd.url('method', 'post')

            with open(__file__, 'rb') as f:
                data = f.read()

            stream = aiohttp.DataQueue(loop=self.loop)
            stream.feed_data(data[:100])
            stream.feed_data(data[100:])
            stream.feed_eof()

            r = self.loop.run_until_complete(
                client.request('post',
                               url,
                               data=stream,
                               headers={'Content-Length': str(len(data))},
                               loop=self.loop))
            content = self.loop.run_until_complete(r.json())
            r.close()

            self.assertEqual(str(len(data)),
                             content['headers']['Content-Length'])
コード例 #16
0
    def test_parser(self, m_parse_message):
        cur = 0

        def parse_message(buf):
            nonlocal cur
            yield
            if cur == 0:
                cur = 1
                return websocket.Message(websocket.OPCODE_TEXT, b'line1', b'')
            else:
                return websocket.Message(websocket.OPCODE_CLOSE, b'', b'')

        m_parse_message.side_effect = parse_message
        out = aiohttp.DataQueue()
        buf = aiohttp.ParserBuffer()
        p = websocket.WebSocketParser(out, buf)
        next(p)
        p.send(b'')
        self.assertRaises(StopIteration, p.send, b'')

        self.assertEqual((websocket.OPCODE_TEXT, b'line1', b''),
                         out._buffer[0])
        self.assertEqual((websocket.OPCODE_CLOSE, b'', b''), out._buffer[1])
        self.assertTrue(out._eof)
コード例 #17
0
def out(loop):
    return aiohttp.DataQueue(loop=loop)
コード例 #18
0
def out(loop: Any):
    return aiohttp.DataQueue(loop)
コード例 #19
0
ファイル: test_websocket.py プロジェクト: wsshopping/aiohttp
    def setUp(self):
        self.loop = asyncio.new_event_loop()
        asyncio.set_event_loop(None)

        self.buf = aiohttp.ParserBuffer()
        self.out = aiohttp.DataQueue(loop=self.loop)
コード例 #20
0
def function2574(arg1241):
    return aiohttp.DataQueue(loop=arg1241)
コード例 #21
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
 def test_parse_chunked_payload_size_error(self):
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpPayloadParser(None).parse_chunked_payload(out, buf)
     next(p)
     self.assertRaises(errors.IncompleteRead, p.send, b'blah\r\n')
コード例 #22
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
 def test_http_response_parser_bad_status_line_eof(self):
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     self.assertRaises(errors.BadStatusLine, p.throw, aiohttp.EofStream())
コード例 #23
0
ファイル: http_parser_test.py プロジェクト: madjar/aiohttp
 def test_http_response_parser_bad_status_line(self):
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     self.assertRaises(errors.BadStatusLine, p.send, b'\r\n\r\n')