[Python-checkins] cpython: Issue 24297: Fix test_symbol on Windows

victor.stinner python-checkins at python.org
Wed Sep 2 14:35:04 CEST 2015


https://hg.python.org/cpython/rev/bf7ef3bd9a09
changeset:   97576:bf7ef3bd9a09
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed Sep 02 14:23:40 2015 +0200
summary:
  Issue 24297: Fix test_symbol on Windows

Don't rely on end of line. Open files in text mode, not in binary mode.

files:
  Lib/test/test_symbol.py |  35 +++++++++++++++++-----------
  1 files changed, 21 insertions(+), 14 deletions(-)


diff --git a/Lib/test/test_symbol.py b/Lib/test/test_symbol.py
--- a/Lib/test/test_symbol.py
+++ b/Lib/test/test_symbol.py
@@ -15,12 +15,11 @@
 class TestSymbolGeneration(unittest.TestCase):
 
     def _copy_file_without_generated_symbols(self, source_file, dest_file):
-        with open(source_file, 'rb') as fp:
+        with open(source_file) as fp:
             lines = fp.readlines()
-        nl = lines[0][len(lines[0].rstrip()):]
-        with open(dest_file, 'wb') as fp:
-            fp.writelines(lines[:lines.index(b"#--start constants--" + nl) + 1])
-            fp.writelines(lines[lines.index(b"#--end constants--" + nl):])
+        with open(dest_file, 'w') as fp:
+            fp.writelines(lines[:lines.index("#--start constants--\n") + 1])
+            fp.writelines(lines[lines.index("#--end constants--\n"):])
 
     def _generate_symbols(self, grammar_file, target_symbol_py_file):
         proc = subprocess.Popen([sys.executable,
@@ -30,18 +29,26 @@
         stderr = proc.communicate()[1]
         return proc.returncode, stderr
 
+    def compare_files(self, file1, file2):
+        with open(file1) as fp:
+            lines1 = fp.readlines()
+        with open(file2) as fp:
+            lines2 = fp.readlines()
+        self.assertEqual(lines1, lines2)
+
     @unittest.skipIf(not os.path.exists(GRAMMAR_FILE),
                      'test only works from source build directory')
     def test_real_grammar_and_symbol_file(self):
-        self._copy_file_without_generated_symbols(SYMBOL_FILE, TEST_PY_FILE)
-        self.addCleanup(support.unlink, TEST_PY_FILE)
-        self.assertFalse(filecmp.cmp(SYMBOL_FILE, TEST_PY_FILE))
-        self.assertEqual((0, b''), self._generate_symbols(GRAMMAR_FILE,
-                                                          TEST_PY_FILE))
-        self.assertTrue(filecmp.cmp(SYMBOL_FILE, TEST_PY_FILE),
-                        'symbol stat: %r\ntest_py stat: %r\n' %
-                        (os.stat(SYMBOL_FILE),
-                         os.stat(TEST_PY_FILE)))
+        output = support.TESTFN
+        self.addCleanup(support.unlink, output)
+
+        self._copy_file_without_generated_symbols(SYMBOL_FILE, output)
+
+        exitcode, stderr = self._generate_symbols(GRAMMAR_FILE, output)
+        self.assertEqual(b'', stderr)
+        self.assertEqual(0, exitcode)
+
+        self.compare_files(SYMBOL_FILE, output)
 
 
 if __name__ == "__main__":

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list