class TestFetch(unittest.TestCase):
+ def _port(self) -> int:
+ port = self._web_server.socket.getsockname()[1]
+ assert isinstance(port, int)
+ return port
+
def setUp(self) -> None:
- web_server = HTTPServer(('', 0), FakeGlowficHTTPRequestHandler)
- self._port = web_server.socket.getsockname()[1]
- self._thread = threading.Thread(target=web_server.serve_forever)
+ self._web_server = HTTPServer(('', 0), FakeGlowficHTTPRequestHandler)
+ self._thread = threading.Thread(target=self._web_server.serve_forever)
self._thread.start()
- self._stop_server = web_server.shutdown
def tearDown(self) -> None:
- self._stop_server()
+ self._web_server.shutdown()
self._thread.join()
+ self._web_server.server_close()
def testFetch(self) -> None:
- paperdoorknob.fetch(f"http://localhost:{self._port}", TIMEOUT)
+ 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)
+ f"http://localhost:{self._port()}/not_found", TIMEOUT)
with self.assertRaises(requests.HTTPError):
paperdoorknob.fetch(
- f"http://localhost:{self._port}/server_error", TIMEOUT)
+ f"http://localhost:{self._port()}/server_error", TIMEOUT)
if __name__ == '__main__':