From 238e7b595c725aaf1baf126a81d42e891d8c7805 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Fri, 15 Sep 2023 15:44:10 -0700 Subject: [PATCH] [3.12] gh-109096: Silence test_httpservers fork + threads DeprecationWarning on CGI support. We're not fixing CGIHTTPRequestHandler as it is deprecated in 3.13 to go away in 3.15. This just removes noise from our test suite when warnings are rightfully enabled. If the long pre-existing fork+threading mix here ever causes anyone deadlocks as is possible, disabling the test entirely on that platform makes sense rather than attempting to fix http.server.CGIHTTPRequestHandler or refactor to not use a threaded server in the test. --- Lib/test/test_httpservers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py index cfd8a101dcc1c1..15f944734c608e 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -26,6 +26,7 @@ import datetime import threading from unittest import mock +import warnings from io import BytesIO, StringIO import unittest @@ -699,7 +700,11 @@ def test_html_escape_filename(self): "This test can't be run reliably as root (issue #13308).") class CGIHTTPServerTestCase(BaseTestCase): class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler): - pass + def run_cgi(self): + # Silence the threading + fork DeprecationWarning this causes. + # gh-109096: This is deprecated in 3.13 to go away in 3.15. + with warnings.catch_warnings(action='ignore', category=DeprecationWarning): + return super().run_cgi() linesep = os.linesep.encode('ascii')