Mercurial > cpython-lru_cache-weakref
annotate Tools/parser/test_unparse.py @ 73323:dad02a080bbc
Improve byte-compilation in packaging to be independent of -O or -B.
The code I fixed to comply with PEP 3147 still had one bug: When run
under python -O, some paths for pyc files would be pyo, because I called
imp.cache_from_source without explicit debug_override argument in some
places, and under -O that would return .pyo (this is well explained in
the imp docs). Now all code (util.byte_compile, build_py, install_lib)
can create .pyo files according to options given by users,
without interference from the calling Python’s own optimize mode.
On a related topic, I also removed the code that prevented byte
compilation under python -B. The rationale is that packaging gives
control over the creation of pyc files to the user with its own explicit
option, and the behavior should not be changed if the calling Python
happens to run with -B for whatever reason. I will argue that this is a
bug fix and ask to be allowed to backport this change to distutils.
Finally, I moved one nugget of information about the --compile and
--optimize options from the source into the doc. It clears up a
misunderstanding that I (and maybe other people) had.
| author | Éric Araujo <merwok@netwok.org> |
|---|---|
| date | Thu, 03 Nov 2011 05:08:28 +0100 |
| parents | 87e6bdb373d1 |
| children | c80576303892 |
| rev | line source |
|---|---|
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
1 import unittest |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
2 import test.support |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
3 import io |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
4 import os |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
5 import tokenize |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
6 import ast |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
7 import unparse |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
8 |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
9 def read_pyfile(filename): |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
10 """Read and return the contents of a Python source file (as a |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
11 string), taking into account the file encoding.""" |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
12 with open(filename, "rb") as pyfile: |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
13 encoding = tokenize.detect_encoding(pyfile.readline)[0] |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
14 with open(filename, "r", encoding=encoding) as pyfile: |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
15 source = pyfile.read() |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
16 return source |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
17 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
18 for_else = """\ |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
19 def f(): |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
20 for x in range(10): |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
21 break |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
22 else: |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
23 y = 2 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
24 z = 3 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
25 """ |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
26 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
27 while_else = """\ |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
28 def g(): |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
29 while True: |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
30 break |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
31 else: |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
32 y = 2 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
33 z = 3 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
34 """ |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
35 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
36 relative_import = """\ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
37 from . import fred |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
38 from .. import barney |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
39 from .australia import shrimp as prawns |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
40 """ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
41 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
42 nonlocal_ex = """\ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
43 def f(): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
44 x = 1 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
45 def g(): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
46 nonlocal x |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
47 x = 2 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
48 y = 7 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
49 def h(): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
50 nonlocal x, y |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
51 """ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
52 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
53 # also acts as test for 'except ... as ...' |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
54 raise_from = """\ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
55 try: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
56 1 / 0 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
57 except ZeroDivisionError as e: |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
58 raise ArithmeticError from e |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
59 """ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
60 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
61 class_decorator = """\ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
62 @f1(arg) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
63 @f2 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
64 class Foo: pass |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
65 """ |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
66 |
|
62643
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
67 elif1 = """\ |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
68 if cond1: |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
69 suite1 |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
70 elif cond2: |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
71 suite2 |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
72 else: |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
73 suite3 |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
74 """ |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
75 |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
76 elif2 = """\ |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
77 if cond1: |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
78 suite1 |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
79 elif cond2: |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
80 suite2 |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
81 """ |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
82 |
|
62644
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
83 try_except_finally = """\ |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
84 try: |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
85 suite1 |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
86 except ex1: |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
87 suite2 |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
88 except ex2: |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
89 suite3 |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
90 else: |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
91 suite4 |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
92 finally: |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
93 suite5 |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
94 """ |
|
62643
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
95 |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
96 class ASTTestCase(unittest.TestCase): |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
97 def assertASTEqual(self, ast1, ast2): |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
98 self.assertEqual(ast.dump(ast1), ast.dump(ast2)) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
99 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
100 def check_roundtrip(self, code1, filename="internal"): |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
101 ast1 = compile(code1, filename, "exec", ast.PyCF_ONLY_AST) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
102 unparse_buffer = io.StringIO() |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
103 unparse.Unparser(ast1, unparse_buffer) |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
104 code2 = unparse_buffer.getvalue() |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
105 ast2 = compile(code2, filename, "exec", ast.PyCF_ONLY_AST) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
106 self.assertASTEqual(ast1, ast2) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
107 |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
108 class UnparseTestCase(ASTTestCase): |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
109 # Tests for specific bugs found in earlier versions of unparse |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
110 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
111 def test_del_statement(self): |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
112 self.check_roundtrip("del x, y, z") |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
113 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
114 def test_shifts(self): |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
115 self.check_roundtrip("45 << 2") |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
116 self.check_roundtrip("13 >> 7") |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
117 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
118 def test_for_else(self): |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
119 self.check_roundtrip(for_else) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
120 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
121 def test_while_else(self): |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
122 self.check_roundtrip(while_else) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
123 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
124 def test_unary_parens(self): |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
125 self.check_roundtrip("(-1)**7") |
|
62651
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
126 self.check_roundtrip("(-1.)**8") |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
127 self.check_roundtrip("(-1j)**6") |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
128 self.check_roundtrip("not True or False") |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
129 self.check_roundtrip("True or not False") |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
130 |
|
62622
2f9051fe6ad9
Add parentheses around numeric literals, to avoid turning 3 .bit_length() into 3.bit_length().
Mark Dickinson <dickinsm@gmail.com>
parents:
62613
diff
changeset
|
131 def test_integer_parens(self): |
|
2f9051fe6ad9
Add parentheses around numeric literals, to avoid turning 3 .bit_length() into 3.bit_length().
Mark Dickinson <dickinsm@gmail.com>
parents:
62613
diff
changeset
|
132 self.check_roundtrip("3 .__abs__()") |
|
2f9051fe6ad9
Add parentheses around numeric literals, to avoid turning 3 .bit_length() into 3.bit_length().
Mark Dickinson <dickinsm@gmail.com>
parents:
62613
diff
changeset
|
133 |
|
62623
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
134 def test_huge_float(self): |
|
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
135 self.check_roundtrip("1e1000") |
|
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
136 self.check_roundtrip("-1e1000") |
|
62651
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
137 self.check_roundtrip("1e1000j") |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
138 self.check_roundtrip("-1e1000j") |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
139 |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
140 def test_min_int(self): |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
141 self.check_roundtrip(str(-2**31)) |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
142 self.check_roundtrip(str(-2**63)) |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
143 |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
144 def test_imaginary_literals(self): |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
145 self.check_roundtrip("7j") |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
146 self.check_roundtrip("-7j") |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
147 self.check_roundtrip("0j") |
|
043ef04f64d2
Unparse infinite imaginary literals correctly. Add some more numeric tests.
Mark Dickinson <dickinsm@gmail.com>
parents:
62650
diff
changeset
|
148 self.check_roundtrip("-0j") |
|
62623
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
149 |
|
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
150 def test_lambda_parentheses(self): |
|
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
151 self.check_roundtrip("(lambda: int)()") |
|
fe44828ea7ed
More unparse.py fixes:
Mark Dickinson <dickinsm@gmail.com>
parents:
62622
diff
changeset
|
152 |
|
62612
69f6d2130281
Merged revisions 82345 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
62609
diff
changeset
|
153 def test_chained_comparisons(self): |
|
69f6d2130281
Merged revisions 82345 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
62609
diff
changeset
|
154 self.check_roundtrip("1 < 4 <= 5") |
|
69f6d2130281
Merged revisions 82345 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
62609
diff
changeset
|
155 self.check_roundtrip("a is b is c is not d") |
|
69f6d2130281
Merged revisions 82345 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
62609
diff
changeset
|
156 |
|
62613
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
157 def test_function_arguments(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
158 self.check_roundtrip("def f(): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
159 self.check_roundtrip("def f(a): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
160 self.check_roundtrip("def f(b = 2): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
161 self.check_roundtrip("def f(a, b): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
162 self.check_roundtrip("def f(a, b = 2): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
163 self.check_roundtrip("def f(a = 5, b = 2): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
164 self.check_roundtrip("def f(*, a = 1, b = 2): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
165 self.check_roundtrip("def f(*, a = 1, b): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
166 self.check_roundtrip("def f(*, a, b = 2): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
167 self.check_roundtrip("def f(a, b = None, *, c, **kwds): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
168 self.check_roundtrip("def f(a=2, *args, c=5, d, **kwds): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
169 self.check_roundtrip("def f(*args, **kwargs): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
170 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
171 def test_relative_import(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
172 self.check_roundtrip(relative_import) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
173 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
174 def test_nonlocal(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
175 self.check_roundtrip(nonlocal_ex) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
176 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
177 def test_raise_from(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
178 self.check_roundtrip(raise_from) |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
179 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
180 def test_bytes(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
181 self.check_roundtrip("b'123'") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
182 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
183 def test_annotations(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
184 self.check_roundtrip("def f(a : int): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
185 self.check_roundtrip("def f(a: int = 5): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
186 self.check_roundtrip("def f(*args: [int]): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
187 self.check_roundtrip("def f(**kwargs: dict): pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
188 self.check_roundtrip("def f() -> None: pass") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
189 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
190 def test_set_literal(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
191 self.check_roundtrip("{'a', 'b', 'c'}") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
192 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
193 def test_set_comprehension(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
194 self.check_roundtrip("{x for x in range(5)}") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
195 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
196 def test_dict_comprehension(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
197 self.check_roundtrip("{x: x*x for x in range(10)}") |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
198 |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
199 def test_class_decorators(self): |
|
b817e716516e
Update Demo/parser/unparse.py to current Python 3.x syntax. Additions:
Mark Dickinson <dickinsm@gmail.com>
parents:
62612
diff
changeset
|
200 self.check_roundtrip(class_decorator) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
201 |
|
62637
158166ef6f06
Fix typo in unparsing of a class definition.
Mark Dickinson <dickinsm@gmail.com>
parents:
62627
diff
changeset
|
202 def test_class_definition(self): |
|
158166ef6f06
Fix typo in unparsing of a class definition.
Mark Dickinson <dickinsm@gmail.com>
parents:
62627
diff
changeset
|
203 self.check_roundtrip("class A(metaclass=type, *[], **{}): pass") |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
204 |
|
62643
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
205 def test_elifs(self): |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
206 self.check_roundtrip(elif1) |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
207 self.check_roundtrip(elif2) |
|
25fbf023102d
Collapse else: if: ... into elif:
Mark Dickinson <dickinsm@gmail.com>
parents:
62637
diff
changeset
|
208 |
|
62644
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
209 def test_try_except_finally(self): |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
210 self.check_roundtrip(try_except_finally) |
|
e6bb990ac9f6
Output try-except-finally statements where appropriate.
Mark Dickinson <dickinsm@gmail.com>
parents:
62643
diff
changeset
|
211 |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
212 class DirectoryTestCase(ASTTestCase): |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
213 """Test roundtrip behaviour on all files in Lib and Lib/test.""" |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
214 |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
215 # test directories, relative to the root of the distribution |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
216 test_directories = 'Lib', os.path.join('Lib', 'test') |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
217 |
|
62650
30843be2e11a
Revert accidental extra changes included in r82391.
Mark Dickinson <dickinsm@gmail.com>
parents:
62649
diff
changeset
|
218 def test_files(self): |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
219 # get names of files to test |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
220 dist_dir = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
221 |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
222 names = [] |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
223 for d in self.test_directories: |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
224 test_dir = os.path.join(dist_dir, d) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
225 for n in os.listdir(test_dir): |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
226 if n.endswith('.py') and not n.startswith('bad'): |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
227 names.append(os.path.join(test_dir, n)) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
228 |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
229 for filename in names: |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
230 if test.support.verbose: |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
231 print('Testing %s' % filename) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
232 source = read_pyfile(filename) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
233 self.check_roundtrip(source) |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
234 |
|
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
235 |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
236 def test_main(): |
|
62627
b72c33f496ac
test_unparse.py: Do roundtrip testing for all Python files in Lib and Lib/test.
Mark Dickinson <dickinsm@gmail.com>
parents:
62623
diff
changeset
|
237 test.support.run_unittest(UnparseTestCase, DirectoryTestCase) |
|
62609
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
238 |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
239 if __name__ == '__main__': |
|
68b670f3614e
Merged revisions 82338,82340-82341 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
diff
changeset
|
240 test_main() |
