示例#1
0
 def test_header(self):
     header = b'\r\n'.join([
         b'GET /foo?bar=baz&spam=eggs&chips HTTP/1.1', b'foo: bar', b''
     ]) + b'\r\n'
     a_wait(self.req._read(FakeReader(header)))
     self.assertEqual(self.req.method, 'GET')
     self.assertEqual(self.req.version, 'HTTP/1.1')
     self.assertEqual(self.req.path, '/foo')
     self.assertEqual(self.req.query, {
         'bar': 'baz',
         'spam': 'eggs',
         'chips': None
     })
     self.assertEqual(self.req.headers, {'foo': 'bar'})
     self.assertEqual(self.req.data, b'')
示例#2
0
 def test_header(self):
     res = grole.Response(None, 123, 'foo', {'foo': 'bar'}, 'bar')
     writer = FakeWriter()
     a_wait(res._write(writer))
     for line in writer.data.split(b'\r\n'):
         if line.startswith(b'bar'):
             self.assertEqual(line, b'bar 123 foo')
         elif line.startswith(b'Content-Type'):
             self.assertEqual(line, b'Content-Type: text/plain')
         elif line.startswith(b'Content-Length'):
             self.assertEqual(line, b'Content-Length: 0')
         elif line.startswith(b'foo'):
             self.assertEqual(line, b'foo: bar')
         elif line.startswith(b'Server'):
             self.assertEqual(line, b'Server: grole/' + grole.__version__.encode())
         else:
             if line != b'':
                 self.fail('Extra data: ' + line.decode())
示例#3
0
 def test_buffer_body_not_enough_data(self):
     reader = FakeReader(b'foo')
     self.req.headers = {'Content-Length': 4}
     self.req.data = b''
     with self.assertRaises(EOFError):
         a_wait(self.req._buffer_body(reader))
示例#4
0
 def test_buffer_body_content(self):
     reader = FakeReader(b'foobar')
     self.req.headers = {'Content-Length': 3}
     self.req.data = b''
     a_wait(self.req._buffer_body(reader))
     self.assertEqual(b'foo', self.req.data)
示例#5
0
 def test_readline_raises_eof(self):
     reader = FakeReader(b'')
     with self.assertRaises(EOFError):
         line = a_wait(self.req._readline(reader))
示例#6
0
 def test_readline_returns_data(self):
     reader = FakeReader(b'foo\r\nnope')
     line = a_wait(self.req._readline(reader))
     self.assertEqual(line, b'foo\r\n')
示例#7
0
 def test_data(self):
     writer = FakeWriter()
     a_wait(self.res._write(writer))
     self.assertEqual(writer.data, b'{"foo": "bar"}')
示例#8
0
 def test_data(self):
     res = grole.ResponseBody(b'foo', content_type='bar')
     writer = FakeWriter()
     a_wait(res._write(writer))
     self.assertEqual(writer.data, b'foo')
示例#9
0
 def test_data(self):
     writer = FakeWriter()
     a_wait(self.res._write(writer))
     self.assertEqual(writer.data, b'4\r\nfoo\n\r\n0\r\n\r\n')