Issue #21075: fileinput.FileInput now reads bytes from standard stream if
binary mode is specified. Patch by Sam Kimbrel.
This commit is contained in:
parent
e2d66903e8
commit
946cfc3e23
|
@ -320,7 +320,10 @@ class FileInput:
|
|||
self._backupfilename = 0
|
||||
if self._filename == '-':
|
||||
self._filename = '<stdin>'
|
||||
self._file = sys.stdin
|
||||
if 'b' in self._mode:
|
||||
self._file = sys.stdin.buffer
|
||||
else:
|
||||
self._file = sys.stdin
|
||||
self._isstdin = True
|
||||
else:
|
||||
if self._inplace:
|
||||
|
|
|
@ -19,11 +19,12 @@ try:
|
|||
except ImportError:
|
||||
gzip = None
|
||||
|
||||
from io import StringIO
|
||||
from io import BytesIO, StringIO
|
||||
from fileinput import FileInput, hook_encoded
|
||||
|
||||
from test.support import verbose, TESTFN, run_unittest, check_warnings
|
||||
from test.support import unlink as safe_unlink
|
||||
from unittest import mock
|
||||
|
||||
|
||||
# The fileinput module has 2 interfaces: the FileInput class which does
|
||||
|
@ -232,6 +233,13 @@ class FileInputTests(unittest.TestCase):
|
|||
finally:
|
||||
remove_tempfiles(t1)
|
||||
|
||||
def test_stdin_binary_mode(self):
|
||||
with mock.patch('sys.stdin') as m_stdin:
|
||||
m_stdin.buffer = BytesIO(b'spam, bacon, sausage, and spam')
|
||||
fi = FileInput(files=['-'], mode='rb')
|
||||
lines = list(fi)
|
||||
self.assertEqual(lines, [b'spam, bacon, sausage, and spam'])
|
||||
|
||||
def test_file_opening_hook(self):
|
||||
try:
|
||||
# cannot use openhook and inplace mode
|
||||
|
|
|
@ -674,6 +674,7 @@ Mads Kiilerich
|
|||
Jason Killen
|
||||
Jan Kim
|
||||
Taek Joo Kim
|
||||
Sam Kimbrel
|
||||
W. Trevor King
|
||||
Paul Kippes
|
||||
Steve Kirsch
|
||||
|
|
|
@ -23,6 +23,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #21075: fileinput.FileInput now reads bytes from standard stream if
|
||||
binary mode is specified. Patch by Sam Kimbrel.
|
||||
|
||||
- Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
|
||||
flush() on the underlying binary stream. Patch by akira.
|
||||
|
||||
|
|
Loading…
Reference in New Issue