2
0
Эх сурвалжийг харах

Refs #33173 -- Used locale.getlocale() instead of getdefaultlocale().

locale.getdefaultlocale() was deprecated in Python 3.11, see
https://bugs.python.org/issue46659.
Mariusz Felisiak 3 жил өмнө
parent
commit
d4fd31684a

+ 2 - 2
django/utils/encoding.py

@@ -249,12 +249,12 @@ def filepath_to_uri(path):
 
 def get_system_encoding():
     """
-    The encoding of the default system locale. Fallback to 'ascii' if the
+    The encoding for the character type functions. Fallback to 'ascii' if the
     #encoding is unsupported by Python or could not be determined. See tickets
     #10335 and #5846.
     """
     try:
-        encoding = locale.getdefaultlocale()[1] or "ascii"
+        encoding = locale.getlocale()[1] or "ascii"
         codecs.lookup(encoding)
     except Exception:
         encoding = "ascii"

+ 1 - 1
tests/utils_tests/test_encoding.py

@@ -106,7 +106,7 @@ class TestEncodingUtils(SimpleTestCase):
         self.assertEqual(smart_str("foo"), "foo")
 
     def test_get_default_encoding(self):
-        with mock.patch("locale.getdefaultlocale", side_effect=Exception):
+        with mock.patch("locale.getlocale", side_effect=Exception):
             self.assertEqual(get_system_encoding(), "ascii")
 
     def test_repercent_broken_unicode_recursion_error(self):