bpo-43049: Use io.IncrementalNewlineDecoder for doctest newline conversion (GH-24359)

Followup to bpo-1812 and GH-17385.
This commit is contained in:
Peter Donis 2021-03-02 12:06:20 -05:00 committed by GitHub
parent 503627fc2a
commit b36349a647
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -102,7 +102,7 @@ import re
import sys
import traceback
import unittest
from io import StringIO
from io import StringIO, IncrementalNewlineDecoder
from collections import namedtuple
TestResults = namedtuple('TestResults', 'failed attempted')
@ -212,11 +212,8 @@ def _normalize_module(module, depth=2):
raise TypeError("Expected a module, string, or None")
def _newline_convert(data):
# We have two cases to cover and we need to make sure we do
# them in the right order
for newline in ('\r\n', '\r'):
data = data.replace(newline, '\n')
return data
# The IO module provides a handy decoder for universal newline conversion
return IncrementalNewlineDecoder(None, True).decode(data, True)
def _load_testfile(filename, package, module_relative, encoding):
if module_relative: