Exemplo n.º 1
0
 def test_http_response_parser_code_not_int(self):
     out = aiohttp.FlowControlDataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     with self.assertRaises(errors.BadStatusLine) as cm:
         p.send(b'HTTP/1.1 ttt test\r\n\r\n')
     self.assertIn('HTTP/1.1 ttt test', str(cm.exception))
Exemplo n.º 2
0
 def test_http_response_parser_bad_version(self):
     out = aiohttp.FlowControlDataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     with self.assertRaises(errors.BadStatusLine) as cm:
         p.send(b'HT/11 200 Ok\r\n\r\n')
     self.assertEqual('HT/11 200 Ok', cm.exception.args[0])
Exemplo n.º 3
0
 def test_http_response_parser_bad_status_line_too_long(self):
     out = aiohttp.FlowControlDataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser(max_headers=2, max_line_size=2)(out,
                                                                     buf)
     next(p)
     self.assertRaises(errors.LineTooLong, p.send,
                       b'HTTP/1.1 200 Ok\r\n\r\n')
Exemplo n.º 4
0
 def test_http_response_parser_utf8(self):
     p = protocol.HttpResponseParser()
     msg = 'HTTP/1.1 200 Ok\r\nx-test:тест\r\n\r\n'.encode('utf-8')
     result = p.parse_message(msg.split(b'\r\n'))
     self.assertEqual(result.version, (1, 1))
     self.assertEqual(result.code, 200)
     self.assertEqual(result.reason, 'Ok')
     self.assertEqual(result.headers, CIMultiDict([('X-TEST', 'тест')]))
Exemplo n.º 5
0
 def test_http_response_parser_code_above_999(self):
     out = aiohttp.DataQueue()
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     with self.assertRaises(errors.BadStatusLine) as cm:
         p.send(b'HTTP/1.1 9999 test\r\n\r\n')
     self.assertIn('HTTP/1.1 9999 test', str(cm.exception))
Exemplo n.º 6
0
 def test_http_response_parser_bad(self):
     out = aiohttp.DataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     with self.assertRaises(errors.BadStatusLine) as cm:
         p.send(b'HTT/1\r\n\r\n')
     self.assertIn('HTT/1', str(cm.exception))
Exemplo n.º 7
0
 def test_http_response_parser_no_reason(self):
     out = aiohttp.FlowControlDataQueue(self.stream)
     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][0][:3]
     self.assertEqual(v, (1, 1))
     self.assertEqual(s, 200)
     self.assertEqual(r, '')
Exemplo n.º 8
0
 def test_http_response_parser_utf8(self):
     out = aiohttp.FlowControlDataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     msg = 'HTTP/1.1 200 Ok\r\nx-test:тест\r\n\r\n'.encode('utf-8')
     try:
         p.send(msg)
     except StopIteration:
         pass
     v, s, r, h = out._buffer[0][0][:4]
     self.assertEqual(v, (1, 1))
     self.assertEqual(s, 200)
     self.assertEqual(r, 'Ok')
     self.assertEqual(h, CIMultiDict([('X-TEST', 'тест')]))
Exemplo n.º 9
0
 def test_http_response_parser_bad_status_line_eof(self):
     out = aiohttp.FlowControlDataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     self.assertRaises(aiohttp.EofStream, p.throw, aiohttp.EofStream())
Exemplo n.º 10
0
 def test_http_response_parser_bad_status_line(self):
     out = aiohttp.FlowControlDataQueue(self.stream)
     buf = aiohttp.ParserBuffer()
     p = protocol.HttpResponseParser()(out, buf)
     next(p)
     self.assertRaises(errors.BadStatusLine, p.send, b'\r\n\r\n')
Exemplo n.º 11
0
 def test_http_response_parser_code_not_int(self):
     p = protocol.HttpResponseParser()
     with self.assertRaises(errors.BadStatusLine) as cm:
         p.parse_message(b'HTTP/1.1 ttt test\r\n\r\n'.split(b'\r\n'))
     self.assertIn('HTTP/1.1 ttt test', str(cm.exception))
Exemplo n.º 12
0
 def test_http_response_parser_no_reason(self):
     p = protocol.HttpResponseParser()
     result = p.parse_message(b'HTTP/1.1 200\r\n\r\n'.split(b'\r\n'))
     self.assertEqual(result.version, (1, 1))
     self.assertEqual(result.code, 200)
     self.assertEqual(result.reason, '')
Exemplo n.º 13
0
 def test_http_response_parser_bad_version(self):
     p = protocol.HttpResponseParser()
     with self.assertRaises(errors.BadStatusLine) as cm:
         p.parse_message(b'HT/11 200 Ok\r\n\r\n'.split(b'\r\n'))
     self.assertEqual('HT/11 200 Ok', cm.exception.args[0])
Exemplo n.º 14
0
 def _test_http_response_parser_bad_status_line_too_long(self):
     p = protocol.HttpResponseParser(max_headers=2, max_line_size=2)
     self.assertRaises(errors.LineTooLong, p.parse_message,
                       b'HTTP/1.1 200 Ok\r\n\r\n'.split(b'\r\n'))
Exemplo n.º 15
0
 def test_http_response_parser_bad_status_line(self):
     p = protocol.HttpResponseParser()
     self.assertRaises(errors.BadStatusLine, p.parse_message,
                       b'\r\n\r\n'.split(b'\r\n'))
Exemplo n.º 16
0
 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())