bpo-41139: Deprecate `cgi.log()` (GH-25625)
diff --git a/Lib/cgi.py b/Lib/cgi.py
index 6c72507..6cb8cf2 100755
--- a/Lib/cgi.py
+++ b/Lib/cgi.py
@@ -41,6 +41,7 @@
import html
import locale
import tempfile
+import warnings
__all__ = ["MiniFieldStorage", "FieldStorage", "parse", "parse_multipart",
"parse_header", "test", "print_exception", "print_environ",
@@ -77,9 +78,11 @@ def initlog(*allargs):
"""
global log, logfile, logfp
+ warnings.warn("cgi.log() is deprecated as of 3.10. Use logging instead",
+ DeprecationWarning, stacklevel=2)
if logfile and not logfp:
try:
- logfp = open(logfile, "a")
+ logfp = open(logfile, "a", encoding="locale")
except OSError:
pass
if not logfp:
diff --git a/Lib/test/test_cgi.py b/Lib/test/test_cgi.py
index 239d975..c1b893d 100644
--- a/Lib/test/test_cgi.py
+++ b/Lib/test/test_cgi.py
@@ -6,6 +6,7 @@
from collections import namedtuple
from io import StringIO, BytesIO
from test import support
+from test.support import warnings_helper
class HackedSysModule:
# The regression test will have real values in sys.argv, which
@@ -220,6 +221,7 @@ def test_separator(self):
else:
self.assertEqual(fs.getvalue(key), expect_val[0])
+ @warnings_helper.ignore_warnings(category=DeprecationWarning)
def test_log(self):
cgi.log("Testing")