summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/compiler/transformer.py11
-rw-r--r--Lib/test/test_compiler.py75
2 files changed, 32 insertions, 54 deletions
diff --git a/Lib/compiler/transformer.py b/Lib/compiler/transformer.py
index 7b1e31c..dc88222 100644
--- a/Lib/compiler/transformer.py
+++ b/Lib/compiler/transformer.py
@@ -831,17 +831,11 @@ class Transformer:
i = i + 3
else: # no vararg
assert node[0] == token.COMMA
- i += 1
- #elif node[0] == token.COMMA:
- # i += 1
- # kwonlyargs, skip = self.keywordonlyargs(nodelist[i:])
- # i += skip
- if nodelist[i][0] == token.NAME:
+ i += 2
+ if i < len(nodelist) and nodelist[i][0] == token.NAME:
kwonlyargs, skip = self.keywordonlyargs(nodelist[i:])
i += skip
- print "kwonlyargs:", kwonlyargs
-
if i < len(nodelist):
# should be DOUBLESTAR
t = nodelist[i][0]
@@ -869,7 +863,6 @@ class Transformer:
# skip the comma
i = i + 1
- print "names:", names, "defaults:", defaults, "kwonlyargs:", kwonlyargs, "flags:", flags
return names, defaults, kwonlyargs, flags
def com_fpdef(self, node):
diff --git a/Lib/test/test_compiler.py b/Lib/test/test_compiler.py
index 3027de1..783a34c 100644
--- a/Lib/test/test_compiler.py
+++ b/Lib/test/test_compiler.py
@@ -19,51 +19,36 @@ class CompilerTest(unittest.TestCase):
libdir = os.path.dirname(unittest.__file__)
testdir = os.path.dirname(test.test_support.__file__)
-## for dir in [libdir, testdir]:
-## for basename in os.listdir(dir):
-## # Print still working message since this test can be really slow
-## if next_time <= time.time():
-## next_time = time.time() + _PRINT_WORKING_MSG_INTERVAL
-## print >>sys.__stdout__, \
-## ' testCompileLibrary still working, be patient...'
-## sys.__stdout__.flush()
-##
-## if not basename.endswith(".py"):
-## continue
-## if not TEST_ALL and random() < 0.98:
-## continue
-## path = os.path.join(dir, basename)
-## if test.test_support.verbose:
-## print "compiling", path
-## f = open(path, "U")
-## buf = f.read()
-## f.close()
-## if "badsyntax" in basename or "bad_coding" in basename:
-## self.assertRaises(SyntaxError, compiler.compile,
-## buf, basename, "exec")
-## else:
-## try:
-## compiler.compile(buf, basename, "exec")
-## except Exception, e:
-## args = list(e.args)
-## args[0] += "[in file %s]" % basename
-## e.args = tuple(args)
-## raise
-
- path = "/home/jiwon/p3yk/Lib/test/test_keywordonlyarg.py"
- if test.test_support.verbose:
- print "compiling", path
- f = open(path, "U")
- buf = f.read()
- f.close()
- #try:
- compiler.compile(buf, "test_keywordonlyarg.py", "exec")
- #except Exception, e:
- # args = list(e.args)
- # args[0] += "[in file %s]" % path
- # e.args = tuple(args)
- # raise
-
+ for dir in [libdir, testdir]:
+ for basename in os.listdir(dir):
+ # Print still working message since this test can be really slow
+ if next_time <= time.time():
+ next_time = time.time() + _PRINT_WORKING_MSG_INTERVAL
+ print >>sys.__stdout__, \
+ ' testCompileLibrary still working, be patient...'
+ sys.__stdout__.flush()
+
+ if not basename.endswith(".py"):
+ continue
+ if not TEST_ALL and random() < 0.98:
+ continue
+ path = os.path.join(dir, basename)
+ if test.test_support.verbose:
+ print "compiling", path
+ f = open(path, "U")
+ buf = f.read()
+ f.close()
+ if "badsyntax" in basename or "bad_coding" in basename:
+ self.assertRaises(SyntaxError, compiler.compile,
+ buf, basename, "exec")
+ else:
+ try:
+ compiler.compile(buf, basename, "exec")
+ except Exception, e:
+ args = list(e.args)
+ args[0] += "[in file %s]" % basename
+ e.args = tuple(args)
+ raise
def testNewClassSyntax(self):
compiler.compile("class foo():pass\n\n","<string>","exec")