bpo-31281: Fix pathlib.Path incompatibility in fileinput (gh-3208)

Fix fileinput with inplace=True to accept pathlib.Path objects.
This commit is contained in:
Zhiming Wang 2017-09-05 01:37:24 +08:00 committed by ericvsmith
parent a2344851ab
commit 06de1aeff9
3 changed files with 16 additions and 1 deletions

View file

@ -544,6 +544,19 @@ class FileInputTests(unittest.TestCase):
finally:
remove_tempfiles(t1)
def test_pathlib_file_inplace(self):
t1 = None
try:
t1 = Path(writeTmp(1, ['Pathlib file.']))
with FileInput(t1, inplace=True) as fi:
line = fi.readline()
self.assertEqual(line, 'Pathlib file.')
print('Modified %s' % line)
with open(t1) as f:
self.assertEqual(f.read(), 'Modified Pathlib file.\n')
finally:
remove_tempfiles(t1)
class MockFileInput:
"""A class that mocks out fileinput.FileInput for use during unit tests"""