X-Git-Url: http://www.average.org/gitweb/?p=loctrkd.git;a=blobdiff_plain;f=test%2Fcommon.py;h=b9f768c8f55d84573a9149f5de248f955039d32b;hp=434fef947adf0327724e5a9c1caf28388fb9491f;hb=539601a0c1494218d57559a058d2fd7df6ab69c2;hpb=099a8195d469486fa9347cc5faaadd3614a2a445 diff --git a/test/common.py b/test/common.py index 434fef9..b9f768c 100644 --- a/test/common.py +++ b/test/common.py @@ -2,6 +2,7 @@ from configparser import ConfigParser, SectionProxy from contextlib import closing, ExitStack +from http.server import HTTPServer, SimpleHTTPRequestHandler from importlib import import_module from multiprocessing import Process from os import kill, unlink @@ -15,6 +16,7 @@ from socket import ( socket, SocketType, ) +from sys import exit from tempfile import mkstemp from time import sleep from typing import Optional @@ -44,6 +46,7 @@ class TestWithServers(TestCase): } self.conf["opencellid"] = { "dbfn": self.tmpfilebase + ".opencellid.sqlite", + "downloadurl": f"http://localhost:{freeports[2]}/test/262.csv.gz", } self.conf["lookaside"] = { "backend": "opencellid", @@ -62,7 +65,18 @@ class TestWithServers(TestCase): p.start() self.children.append((srvname, p)) if httpd: - pass + server = HTTPServer(("", freeports[2]), SimpleHTTPRequestHandler) + + def run(server): + try: + server.serve_forever() + except KeyboardInterrupt: + # TODO: this still leaves unclosed socket in the server + server.shutdown() + + p = Process(target=run, args=(server,)) + p.start() + self.children.append(("httpd", p)) sleep(1) def tearDown(self) -> None: