Added tests for issue #20501.
authorSerhiy Storchaka <storchaka@gmail.com>
Wed, 26 Feb 2014 19:03:19 +0000 (21:03 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Wed, 26 Feb 2014 19:03:19 +0000 (21:03 +0200)
1  2 
Lib/test/test_fileinput.py

index db6082cb12e6279ac7c74a7506ca75c3826ce086,a7624d3c3d97bab638c1245ad9725f193dad676e..a537bc8c7cb7679cba980dbd11a8c33372db1707
@@@ -837,6 -853,40 +855,26 @@@ class Test_hook_encoded(unittest.TestCa
          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()