Refs #32416 -- Added LiveServerThread.server_class to ease subclassing.
This commit is contained in:
parent
0963f184ab
commit
91c243f80f
|
@ -1448,6 +1448,8 @@ class _MediaFilesHandler(FSFilesHandler):
|
||||||
class LiveServerThread(threading.Thread):
|
class LiveServerThread(threading.Thread):
|
||||||
"""Thread for running a live http server while the tests are running."""
|
"""Thread for running a live http server while the tests are running."""
|
||||||
|
|
||||||
|
server_class = ThreadedWSGIServer
|
||||||
|
|
||||||
def __init__(self, host, static_handler, connections_override=None, port=0):
|
def __init__(self, host, static_handler, connections_override=None, port=0):
|
||||||
self.host = host
|
self.host = host
|
||||||
self.port = port
|
self.port = port
|
||||||
|
@ -1484,7 +1486,11 @@ class LiveServerThread(threading.Thread):
|
||||||
connections.close_all()
|
connections.close_all()
|
||||||
|
|
||||||
def _create_server(self):
|
def _create_server(self):
|
||||||
return ThreadedWSGIServer((self.host, self.port), QuietWSGIRequestHandler, allow_reuse_address=False)
|
return self.server_class(
|
||||||
|
(self.host, self.port),
|
||||||
|
QuietWSGIRequestHandler,
|
||||||
|
allow_reuse_address=False,
|
||||||
|
)
|
||||||
|
|
||||||
def terminate(self):
|
def terminate(self):
|
||||||
if hasattr(self, 'httpd'):
|
if hasattr(self, 'httpd'):
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from django.db import DEFAULT_DB_ALIAS, connections
|
from django.db import DEFAULT_DB_ALIAS, connections
|
||||||
from django.test import LiveServerTestCase, TestCase
|
from django.test import LiveServerTestCase, TestCase
|
||||||
|
from django.test.testcases import LiveServerThread
|
||||||
|
|
||||||
|
|
||||||
class LiveServerThreadTest(TestCase):
|
class LiveServerThreadTest(TestCase):
|
||||||
|
@ -23,3 +24,18 @@ class LiveServerThreadTest(TestCase):
|
||||||
self.assertFalse(conn.is_usable())
|
self.assertFalse(conn.is_usable())
|
||||||
finally:
|
finally:
|
||||||
conn.dec_thread_sharing()
|
conn.dec_thread_sharing()
|
||||||
|
|
||||||
|
def test_server_class(self):
|
||||||
|
class FakeServer:
|
||||||
|
def __init__(*args, **kwargs):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class MyServerThread(LiveServerThread):
|
||||||
|
server_class = FakeServer
|
||||||
|
|
||||||
|
class MyServerTestCase(LiveServerTestCase):
|
||||||
|
server_thread_class = MyServerThread
|
||||||
|
|
||||||
|
thread = MyServerTestCase._create_server_thread(None)
|
||||||
|
server = thread._create_server()
|
||||||
|
self.assertIs(type(server), FakeServer)
|
||||||
|
|
Loading…
Reference in New Issue