Skip to content

Commit

Permalink
bpo-43049: Use io.IncrementalNewlineDecoder for doctest newline conve…
Browse files Browse the repository at this point in the history
…rsion (pythonGH-24359)

Followup to bpo-1812 and pythonGH-17385.
  • Loading branch information
pdonis authored Mar 2, 2021
1 parent 503627f commit b36349a
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions Lib/doctest.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ def _test():
import sys
import traceback
import unittest
from io import StringIO
from io import StringIO, IncrementalNewlineDecoder
from collections import namedtuple

TestResults = namedtuple('TestResults', 'failed attempted')
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit b36349a

Please sign in to comment.