mirror of
https://github.com/django/django.git
synced 2024-12-23 01:25:58 +00:00
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):
|
||||
"""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):
|
||||
self.host = host
|
||||
self.port = port
|
||||
@ -1484,7 +1486,11 @@ class LiveServerThread(threading.Thread):
|
||||
connections.close_all()
|
||||
|
||||
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):
|
||||
if hasattr(self, 'httpd'):
|
||||
|
@ -1,5 +1,6 @@
|
||||
from django.db import DEFAULT_DB_ALIAS, connections
|
||||
from django.test import LiveServerTestCase, TestCase
|
||||
from django.test.testcases import LiveServerThread
|
||||
|
||||
|
||||
class LiveServerThreadTest(TestCase):
|
||||
@ -23,3 +24,18 @@ class LiveServerThreadTest(TestCase):
|
||||
self.assertFalse(conn.is_usable())
|
||||
finally:
|
||||
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
Block a user