From: Scott Worley Date: Thu, 23 Nov 2023 20:09:10 +0000 (-0800) Subject: fetch: Verify error handling X-Git-Url: http://git.scottworley.com/paperdoorknob/commitdiff_plain/6fdb8f01252a4fa9e033af60bc79a1c8fe036558?ds=sidebyside;hp=680f7d1094d76ad090ce1f2c6ae3e14ca5d15677 fetch: Verify error handling --- diff --git a/paperdoorknob_test.py b/paperdoorknob_test.py index 2bd3544..fafd1c3 100644 --- a/paperdoorknob_test.py +++ b/paperdoorknob_test.py @@ -8,6 +8,7 @@ import unittest import threading from http.server import BaseHTTPRequestHandler, HTTPServer +import requests import paperdoorknob TIMEOUT = 8 @@ -15,9 +16,16 @@ TIMEOUT = 8 class FakeGlowficHTTPRequestHandler(BaseHTTPRequestHandler): + def _response_code(self) -> int: + if self.path == "/not_found": + return 404 + if self.path == "/server_error": + return 500 + return 200 + def do_GET(self) -> None: body = b'This is glowfic' - self.send_response(200) + self.send_response(self._response_code()) self.send_header("Content-type", "text/html") self.send_header("Content-Length", str(len(body))) self.end_headers() @@ -37,6 +45,14 @@ class TestFetch(unittest.TestCase): def testFetch(self) -> None: paperdoorknob.fetch(f"http://localhost:{self._port}", TIMEOUT) + def testFetchErrors(self) -> None: + with self.assertRaises(requests.HTTPError): + paperdoorknob.fetch( + f"http://localhost:{self._port}/not_found", TIMEOUT) + with self.assertRaises(requests.HTTPError): + paperdoorknob.fetch( + f"http://localhost:{self._port}/server_error", TIMEOUT) + if __name__ == '__main__': unittest.main()