X-Git-Url: https://code.kerkeslager.com/?p=fwx;a=blobdiff_plain;f=test_phial.py;h=8d7498dae942db6dd2a404dbe48c38747580e50a;hp=df7e77112e222f8b26465377c925e843324f7206;hb=f4de177de239a52c4780ca49a03935e36e262399;hpb=f80262bbe18c56836e612e664d9824ff72d2ca1d diff --git a/test_phial.py b/test_phial.py index df7e771..8d7498d 100644 --- a/test_phial.py +++ b/test_phial.py @@ -35,9 +35,69 @@ class ResponseTests(unittest.TestCase): ), ) +class HTMLResponseTests(unittest.TestCase): + def test_sets_content_type(self): + response = phial.HTMLResponse('Hello, world') + 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 RedirectResponse(unittest.TestCase): + def test_takes_location_as_positional_argument(self): + response = phial.RedirectResponse('/location') + self.assertEqual(response.location, '/location') + + def test_takes_location_as_keyword_argument(self): + response = phial.RedirectResponse(location='/location') + self.assertEqual(response.location, '/location') + + def test_permanent_defaults_to_true(self): + response = phial.RedirectResponse('/location') + self.assertEqual(response.permanent, True) + + def test_status(self): + self.assertEqual( + phial.RedirectResponse('/location', permanent=True).status, + 308, + ) + self.assertEqual( + phial.RedirectResponse('/location', permanent=False).status, + 307, + ) + + def test_headers(self): + self.assertEqual( + phial.RedirectResponse('/location').headers, + (('Location','/location'),), + ) + + def test_content(self): + self.assertEqual( + phial.RedirectResponse('/location').content, + (b'',), + ) + class _get_status_Tests(unittest.TestCase): def test_basic(self): self.assertEqual(phial._get_status(mock.MagicMock(status=200)), '200 OK') + self.assertEqual(phial._get_status(mock.MagicMock(status=307)), '307 Temporary Redirect') + self.assertEqual(phial._get_status(mock.MagicMock(status=308)), '308 Permanent Redirect') class _get_content_Tests(unittest.TestCase): def test_bytes(self):