Beispiel #1
0
 def test_create_with_status_and_reason(self):
     res = Response('not found', 404, reason='NOT FOUND')
     self.assertEqual(res.status_code, 404)
     self.assertEqual(res.headers, {})
     self.assertEqual(res.reason, 'NOT FOUND')
     self.assertEqual(res.body, b'not found')
     fd = io.BytesIO()
     res.write(fd)
     response = fd.getvalue()
     self.assertIn(b'HTTP/1.0 404 NOT FOUND\r\n', response)
Beispiel #2
0
 def test_create_with_reason(self):
     res = Response('foo', reason='ALL GOOD!')
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.headers, {})
     self.assertEqual(res.reason, 'ALL GOOD!')
     self.assertEqual(res.body, b'foo')
     fd = io.BytesIO()
     res.write(fd)
     response = fd.getvalue()
     self.assertIn(b'HTTP/1.0 200 ALL GOOD!\r\n', response)
Beispiel #3
0
 def test_create_from_none(self):
     res = Response(None)
     self.assertEqual(res.status_code, 204)
     self.assertEqual(res.body, b'')
     fd = io.BytesIO()
     res.write(fd)
     response = fd.getvalue()
     self.assertIn(b'HTTP/1.0 204 N/A\r\n', response)
     self.assertIn(b'Content-Length: 0\r\n', response)
     self.assertIn(b'Content-Type: text/plain\r\n', response)
     self.assertTrue(response.endswith(b'\r\n\r\n'))
Beispiel #4
0
 def test_create_from_bytes(self):
     res = Response(b'foo')
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.headers, {})
     self.assertEqual(res.body, b'foo')
     fd = io.BytesIO()
     res.write(fd)
     response = fd.getvalue()
     self.assertIn(b'HTTP/1.0 200 OK\r\n', response)
     self.assertIn(b'Content-Length: 3\r\n', response)
     self.assertIn(b'Content-Type: text/plain\r\n', response)
     self.assertTrue(response.endswith(b'\r\n\r\nfoo'))
Beispiel #5
0
 def test_create_empty(self):
     res = Response(headers={'X-Foo': 'Bar'})
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.headers, {'X-Foo': 'Bar'})
     self.assertEqual(res.body, b'')
     fd = io.BytesIO()
     res.write(fd)
     response = fd.getvalue()
     self.assertIn(b'HTTP/1.0 200 OK\r\n', response)
     self.assertIn(b'X-Foo: Bar\r\n', response)
     self.assertIn(b'Content-Length: 0\r\n', response)
     self.assertIn(b'Content-Type: text/plain\r\n', response)
     self.assertTrue(response.endswith(b'\r\n\r\n'))
Beispiel #6
0
    def test_create_json(self):
        res = Response({'foo': 'bar'})
        self.assertEqual(res.status_code, 200)
        self.assertEqual(res.headers, {'Content-Type': 'application/json'})
        self.assertEqual(res.body, b'{"foo": "bar"}')
        fd = io.BytesIO()
        res.write(fd)
        response = fd.getvalue()
        self.assertIn(b'HTTP/1.0 200 OK\r\n', response)
        self.assertIn(b'Content-Length: 14\r\n', response)
        self.assertIn(b'Content-Type: application/json\r\n', response)
        self.assertTrue(response.endswith(b'\r\n\r\n{"foo": "bar"}'))

        res = Response([1, '2'])
        self.assertEqual(res.status_code, 200)
        self.assertEqual(res.headers, {'Content-Type': 'application/json'})
        self.assertEqual(res.body, b'[1, "2"]')
        fd = io.BytesIO()
        res.write(fd)
        response = fd.getvalue()
        self.assertIn(b'HTTP/1.0 200 OK\r\n', response)
        self.assertIn(b'Content-Length: 8\r\n', response)
        self.assertIn(b'Content-Type: application/json\r\n', response)
        self.assertTrue(response.endswith(b'\r\n\r\n[1, "2"]'))