[Python-checkins] r56229 - sandbox/trunk/2to3/tests/test_parser.py
collin.winter
python-checkins at python.org
Tue Jul 10 09:52:18 CEST 2007
Author: collin.winter
Date: Tue Jul 10 09:52:18 2007
New Revision: 56229
Added:
sandbox/trunk/2to3/tests/test_parser.py
Log:
Add a cut-down version of pytree_idempotency.py as test_parser.py.
Added: sandbox/trunk/2to3/tests/test_parser.py
==============================================================================
--- (empty file)
+++ sandbox/trunk/2to3/tests/test_parser.py Tue Jul 10 09:52:18 2007
@@ -0,0 +1,48 @@
+#!/usr/bin/env python2.5
+"""Test suite for 2to3's parser."""
+# Author: Collin Winter
+
+# Testing imports
+import support
+from support import driver, test_dir
+
+# Python imports
+import os
+import os.path
+
+# Local imports
+from pgen2.parse import ParseError
+
+
+class TestParserIdempotency(support.TestCase):
+
+ """A cut-down version of pytree_idempotency.py."""
+
+ def test_2to3_files(self):
+ proj_dir = os.path.join(test_dir, "..")
+
+ for dirpath, dirnames, filenames in os.walk(proj_dir):
+ for filename in filenames:
+ if filename.endswith(".py"):
+ filepath = os.path.join(dirpath, filename)
+ print "Parsing %s..." % os.path.normpath(filepath)
+ tree = driver.parse_file(filepath, debug=True)
+ if diff(filepath, tree):
+ self.fail("Idempotency failed: %s" % filename)
+
+
+def diff(fn, tree):
+ f = open("@", "w")
+ try:
+ f.write(str(tree))
+ finally:
+ f.close()
+ try:
+ return os.system("diff -u %s @" % fn)
+ finally:
+ os.remove("@")
+
+
+if __name__ == "__main__":
+ import __main__
+ support.run_all_tests(__main__)
More information about the Python-checkins
mailing list