Add some more response types
[fwx] / test_phial.py
index df7e771..6ff27d9 100644 (file)
@@ -35,6 +35,29 @@ class ResponseTests(unittest.TestCase):
             ),
         )
 
+class HTMLResponseTests(unittest.TestCase):
+    def test_sets_content_type(self):
+        response = phial.HTMLResponse('<html><body>Hello, world</body></html>')
+        self.assertEqual(response.content_type, 'text/html')
+
+class JSONResponseTests(unittest.TestCase):
+    def test_sets_content_type(self):
+        response = phial.JSONResponse({ 'foo': 'bar', 'baz': 42 })
+        self.assertEqual(response.content_type, 'application/json')
+
+    def test_sets_content(self):
+        response = phial.JSONResponse({ 'foo': 'bar', 'baz': 42 })
+        self.assertEqual(response.content, '{"foo": "bar", "baz": 42}')
+
+    def test_sets_content_json(self):
+        response = phial.JSONResponse({ 'foo': 'bar', 'baz': 42 })
+        self.assertEqual(response.content_json, {"foo": "bar", "baz": 42})
+
+class TextResponseTests(unittest.TestCase):
+    def test_sets_content_type(self):
+        response = phial.TextResponse('Hello, world\n')
+        self.assertEqual(response.content_type, 'text/plain')
+
 class _get_status_Tests(unittest.TestCase):
     def test_basic(self):
         self.assertEqual(phial._get_status(mock.MagicMock(status=200)), '200 OK')