mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-12-12 08:05:05 -05:00
Fix test failing on macOS
This commit is contained in:
parent
496bc88f08
commit
630fcbb38c
@ -82,7 +82,8 @@ class TestFetchBackend(unittest.TestCase):
|
|||||||
self.server_started = Event()
|
self.server_started = Event()
|
||||||
self.server_thread = Thread(target=self.run_server, daemon=True)
|
self.server_thread = Thread(target=self.run_server, daemon=True)
|
||||||
self.server_thread.start()
|
self.server_thread.start()
|
||||||
if not self.server_started.wait(15):
|
# For some reason binding the server socket has a 30 second timeout on macOS. DNS related?
|
||||||
|
if not self.server_started.wait(60):
|
||||||
raise Exception('Test server failed to start')
|
raise Exception('Test server failed to start')
|
||||||
self.request_count = 0
|
self.request_count = 0
|
||||||
self.dont_send_response = self.dont_send_body = False
|
self.dont_send_response = self.dont_send_body = False
|
||||||
@ -176,15 +177,20 @@ class TestFetchBackend(unittest.TestCase):
|
|||||||
br.shutdown()
|
br.shutdown()
|
||||||
|
|
||||||
def run_server(self):
|
def run_server(self):
|
||||||
from http.server import ThreadingHTTPServer
|
from http.server import HTTPServer
|
||||||
|
|
||||||
def create_handler(*a):
|
def create_handler(*a):
|
||||||
ans = Handler(self, *a)
|
ans = Handler(self, *a)
|
||||||
return ans
|
return ans
|
||||||
|
|
||||||
with ThreadingHTTPServer(('', 0), create_handler) as httpd:
|
httpd = HTTPServer(('localhost', 0), create_handler, bind_and_activate=False)
|
||||||
|
httpd.allow_reuse_address = True
|
||||||
|
httpd.allow_reuse_port = True
|
||||||
|
with httpd:
|
||||||
self.server = httpd
|
self.server = httpd
|
||||||
self.port = httpd.server_address[1]
|
httpd.server_bind()
|
||||||
|
self.port = httpd.server_port
|
||||||
|
httpd.server_activate()
|
||||||
self.server_started.set()
|
self.server_started.set()
|
||||||
httpd.serve_forever()
|
httpd.serve_forever()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user