Fix fileinput with inplace=True to accept pathlib.Path objects.
else:
if self._inplace:
self._backupfilename = (
- self._filename + (self._backup or ".bak"))
+ os.fspath(self._filename) + (self._backup or ".bak"))
try:
os.unlink(self._backupfilename)
except OSError:
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"""
--- /dev/null
+Fix ``fileinput.FileInput(files, inplace=True)`` when ``files`` contain
+``pathlib.Path`` objects.