Commit cb32175b authored by Unai Zalakain's avatar Unai Zalakain
Browse files

Fixed ticket #21172

LiveServerThread.join() now behaves like threading.Thread.join().
LiveServerThread.terminate() is instead used to ask live http server to
terminate and close.
parent 9b95fa77
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1063,12 +1063,14 @@ class LiveServerThread(threading.Thread):
            self.error = e
            self.is_ready.set()

    def join(self, timeout=None):
    def terminate(self):
        """
        Shuts down live WSGI server.
        """
        if hasattr(self, 'httpd'):
            # Stop the WSGI server
            self.httpd.shutdown()
            self.httpd.server_close()
        super(LiveServerThread, self).join(timeout)


class LiveServerTestCase(TransactionTestCase):
@@ -1148,6 +1150,7 @@ class LiveServerTestCase(TransactionTestCase):
        # reasons has raised an exception.
        if hasattr(cls, 'server_thread'):
            # Terminate the live server's thread
            cls.server_thread.terminate()
            cls.server_thread.join()

        # Restore sqlite connections' non-sharability