bpo-43651: PEP 597: Fix EncodingWarning in some tests (GH-25145)
* test_asyncio
* test_bz2
* test_math
* test_cmath
* test_cmd_line
* test_cmd_line_script
* test_compile
* test_contextlib
* test_profile
* ctypes/test/test_find
* test_multiprocessing
* test_configparser
* test_csv
* test_dbm_dumb
* test_decimal
* test_difflib
* os.fdopen() calls io.text_encoding() to emit EncodingWarning for right place.
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index ccc5e4d..efed3a8 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -922,14 +922,14 @@ def test_text_modes(self):
for mode in ("wt", "xt"):
if mode == "xt":
unlink(self.filename)
- with self.open(self.filename, mode) as f:
+ with self.open(self.filename, mode, encoding="ascii") as f:
f.write(text)
with open(self.filename, "rb") as f:
file_data = ext_decompress(f.read()).decode("ascii")
self.assertEqual(file_data, text_native_eol)
- with self.open(self.filename, "rt") as f:
+ with self.open(self.filename, "rt", encoding="ascii") as f:
self.assertEqual(f.read(), text)
- with self.open(self.filename, "at") as f:
+ with self.open(self.filename, "at", encoding="ascii") as f:
f.write(text)
with open(self.filename, "rb") as f:
file_data = ext_decompress(f.read()).decode("ascii")
@@ -938,7 +938,8 @@ def test_text_modes(self):
def test_x_mode(self):
for mode in ("x", "xb", "xt"):
unlink(self.filename)
- with self.open(self.filename, mode) as f:
+ encoding = "utf-8" if "t" in mode else None
+ with self.open(self.filename, mode, encoding=encoding) as f:
pass
with self.assertRaises(FileExistsError):
with self.open(self.filename, mode) as f:
@@ -950,7 +951,7 @@ def test_fileobj(self):
with self.open(BytesIO(self.DATA), "rb") as f:
self.assertEqual(f.read(), self.TEXT)
text = self.TEXT.decode("ascii")
- with self.open(BytesIO(self.DATA), "rt") as f:
+ with self.open(BytesIO(self.DATA), "rt", encoding="utf-8") as f:
self.assertEqual(f.read(), text)
def test_bad_params(self):
@@ -989,9 +990,9 @@ def test_encoding_error_handler(self):
def test_newline(self):
# Test with explicit newline (universal newline mode disabled).
text = self.TEXT.decode("ascii")
- with self.open(self.filename, "wt", newline="\n") as f:
+ with self.open(self.filename, "wt", encoding="utf-8", newline="\n") as f:
f.write(text)
- with self.open(self.filename, "rt", newline="\r") as f:
+ with self.open(self.filename, "rt", encoding="utf-8", newline="\r") as f:
self.assertEqual(f.readlines(), [text])