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])
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))
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))
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))
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))
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))
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)
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, '')
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))
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)
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'])
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()
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
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'])
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)
def out(loop): return aiohttp.DataQueue(loop=loop)
def out(loop: Any): return aiohttp.DataQueue(loop)
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)
def function2574(arg1241): return aiohttp.DataQueue(loop=arg1241)
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')
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())
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')