diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-09-02 12:23:40 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-09-02 12:23:40 (GMT) |
commit | f08fea9ee8a4ff12445b994dc7956b58e85762f4 (patch) | |
tree | f0986c3c44c8721b9c1dde1ff71bdb69bae07a4e | |
parent | 8aad8d6ad32de1f8fb87ff55ecde8ea3de8a72c4 (diff) | |
download | cpython-f08fea9ee8a4ff12445b994dc7956b58e85762f4.zip cpython-f08fea9ee8a4ff12445b994dc7956b58e85762f4.tar.gz cpython-f08fea9ee8a4ff12445b994dc7956b58e85762f4.tar.bz2 |
Issue 24297: Fix test_symbol on Windows
Don't rely on end of line. Open files in text mode, not in binary mode.
-rw-r--r-- | 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 index c126be3..2dcb9de 100644 --- a/Lib/test/test_symbol.py +++ b/Lib/test/test_symbol.py @@ -15,12 +15,11 @@ TEST_PY_FILE = 'symbol_test.py' 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 @@ class TestSymbolGeneration(unittest.TestCase): 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__": |