self.assertIs(kwargs.pop('encoding'), encoding)
self.assertFalse(kwargs)
- check('rU', ['A\n', 'B\n', 'C\n', 'D\u20ac'])
- check('U', ['A\n', 'B\n', 'C\n', 'D\u20ac'])
+ def test_modes(self):
+ # Unlikely UTF-7 is locale encoding
+ with open(TESTFN, 'wb') as f:
+ f.write(b'A\nB\r\nC\rD+IKw-')
+ self.addCleanup(safe_unlink, TESTFN)
+
+ def check(mode, expected_lines):
+ with FileInput(files=TESTFN, mode=mode,
+ openhook=hook_encoded('utf-7')) as fi:
+ lines = list(fi)
+ self.assertEqual(lines, expected_lines)
+
+ check('r', ['A\n', 'B\n', 'C\n', 'D\u20ac'])
-def test_main():
- run_unittest(
- BufferSizesTests,
- FileInputTests,
- Test_fileinput_input,
- Test_fileinput_close,
- Test_fileinput_nextfile,
- Test_fileinput_filename,
- Test_fileinput_lineno,
- Test_fileinput_filelineno,
- Test_fileinput_fileno,
- Test_fileinput_isfirstline,
- Test_fileinput_isstdin,
- Test_hook_compressed,
- Test_hook_encoded,
- )
++ with self.assertWarns(DeprecationWarning):
++ check('rU', ['A\n', 'B\n', 'C\n', 'D\u20ac'])
++ with self.assertWarns(DeprecationWarning):
++ check('U', ['A\n', 'B\n', 'C\n', 'D\u20ac'])
+ with self.assertRaises(ValueError):
+ check('rb', ['A\n', 'B\r\n', 'C\r', 'D\u20ac'])
+
if __name__ == "__main__":
- test_main()
+ unittest.main()