diff options
author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-01-12 06:04:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-12 06:04:10 +0100 |
commit | d02a9f0cee84e3d23f676bdf2ab6aadbf4a5bfe8 (patch) | |
tree | 1e8791eed0f6bd48d1f5e00c8a0c12e071ba57c2 /tests/servers | |
parent | 4593bc5da115f2e808a803a4ec24104b6c7a6152 (diff) | |
download | django-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.py | 30 |
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): |