]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Merged revisions 76125 via svnmerge from
authorBenjamin Peterson <benjamin@python.org>
Thu, 5 Nov 2009 21:29:56 +0000 (21:29 +0000)
committerBenjamin Peterson <benjamin@python.org>
Thu, 5 Nov 2009 21:29:56 +0000 (21:29 +0000)
svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3

........
  r76125 | benjamin.peterson | 2009-11-05 15:26:55 -0600 (Thu, 05 Nov 2009) | 1 line

  handle newline issues better for comparing files
........

Lib/lib2to3/tests/test_parser.py

index ebde848e8f5bd1f07a05b36aa07074d48a0df868..08b916164bbecf6a5f14d64217221dd9f9cdf3e4 100644 (file)
@@ -12,6 +12,7 @@ from .support import driver, test_dir
 
 # Python imports
 import os
+import io
 
 # Local imports
 from lib2to3.pgen2 import tokenize
@@ -149,15 +150,13 @@ class TestParserIdempotency(support.TestCase):
         for filepath in support.all_project_files():
             with open(filepath, "rb") as fp:
                 encoding = tokenize.detect_encoding(fp.readline)[0]
-                fp.seek(0)
+            self.assertTrue(encoding is not None,
+                            "can't detect encoding for %s" % filepath)
+            with io.open(filepath, "r", encoding=encoding) as fp:
                 source = fp.read()
-                if encoding:
-                    source = source.decode(encoding)
             tree = driver.parse_string(source)
             new = unicode(tree)
-            if encoding:
-                new = new.encode(encoding)
-            if diff(filepath, new):
+            if diff(filepath, new, encoding):
                 self.fail("Idempotency failed: %s" % filepath)
 
     def test_extended_unpacking(self):
@@ -199,8 +198,8 @@ class TestLiterals(GrammarTest):
         self.validate(s)
 
 
-def diff(fn, result):
-    f = open("@", "wb")
+def diff(fn, result, encoding):
+    f = io.open("@", "w", encoding=encoding)
     try:
         f.write(result)
     finally: