summaryrefslogtreecommitdiff
path: root/tests/servers
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2023-01-12 06:04:10 +0100
committerGitHub <noreply@github.com>2023-01-12 06:04:10 +0100
commitd02a9f0cee84e3d23f676bdf2ab6aadbf4a5bfe8 (patch)
tree1e8791eed0f6bd48d1f5e00c8a0c12e071ba57c2 /tests/servers
parent4593bc5da115f2e808a803a4ec24104b6c7a6152 (diff)
downloaddjango-d02a9f0cee84e3d23f676bdf2ab6aadbf4a5bfe8.tar.gz
Fixed thread termination in servers.tests.LiveServerPort on Python 3.10.9+, 3.11.1+, and 3.12+.
Class cleanups registered in TestCase subclasses are no longer called as TestCase.doClassCleanups() only cleans up the particular class, see https://github.com/python/cpython/commit/c2102136be569e6fc8ed90181f229b46d07142f8
Diffstat (limited to 'tests/servers')
-rw-r--r--tests/servers/tests.py30
1 files changed, 18 insertions, 12 deletions
diff --git a/tests/servers/tests.py b/tests/servers/tests.py
index 66f0af1604..8796db9749 100644
--- a/tests/servers/tests.py
+++ b/tests/servers/tests.py
@@ -377,12 +377,15 @@ class LiveServerPort(LiveServerBase):
return
# Unexpected error.
raise
- self.assertNotEqual(
- self.live_server_url,
- TestCase.live_server_url,
- f"Acquired duplicate server addresses for server threads: "
- f"{self.live_server_url}",
- )
+ try:
+ self.assertNotEqual(
+ self.live_server_url,
+ TestCase.live_server_url,
+ f"Acquired duplicate server addresses for server threads: "
+ f"{self.live_server_url}",
+ )
+ finally:
+ TestCase.doClassCleanups()
def test_specified_port_bind(self):
"""LiveServerTestCase.port customizes the server's port."""
@@ -393,12 +396,15 @@ class LiveServerPort(LiveServerBase):
TestCase.port = s.getsockname()[1]
s.close()
TestCase._start_server_thread()
- self.assertEqual(
- TestCase.port,
- TestCase.server_thread.port,
- f"Did not use specified port for LiveServerTestCase thread: "
- f"{TestCase.port}",
- )
+ try:
+ self.assertEqual(
+ TestCase.port,
+ TestCase.server_thread.port,
+ f"Did not use specified port for LiveServerTestCase thread: "
+ f"{TestCase.port}",
+ )
+ finally:
+ TestCase.doClassCleanups()
class LiveServerThreadedTests(LiveServerBase):