Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_parser.py @ 51749:1408feec0084 3.0
Merged revisions 69798 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r69798 | benjamin.peterson | 2009-02-19 22:02:38 -0600 (Thu, 19 Feb 2009) | 13 lines
Merged revisions 69769,69776 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r69769 | georg.brandl | 2009-02-19 02:30:06 -0600 (Thu, 19 Feb 2009) | 1 line
#5310, #3558: fix operator precedence table.
........
r69776 | georg.brandl | 2009-02-19 10:34:51 -0600 (Thu, 19 Feb 2009) | 2 lines
#5317: update IronPython URL.
........
................
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Fri, 20 Feb 2009 04:05:32 +0000 |
| parents | e9675d72e3e3 |
| children | 287ce30d08b5 |
| rev | line source |
|---|---|
|
14111
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1 import parser |
|
49633
bd0e9a9cd283
Merged revisions 67028,67040,67044,67046,67052,67065,67070,67077,67082 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49624
diff
changeset
|
2 import os |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
3 import unittest |
|
45852
30c4e1ca8421
Merged revisions 61431,61433-61436,61439,61444,61449-61450,61453,61458,61465,61468,61471-61474,61480,61483-61484,61488,61495-61496,61498,61503-61504,61507,61509-61510,61515-61518 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45446
diff
changeset
|
4 import sys |
|
51244
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
5 import operator |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45852
diff
changeset
|
6 from test import support |
|
14111
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
7 |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
8 # |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
9 # First, we test that we can generate trees from valid source fragments, |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
10 # and that these valid trees are indeed allowed by the tree-loading side |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
11 # of the parser module. |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
12 # |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
13 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
14 class RoundtripLegalSyntaxTestCase(unittest.TestCase): |
|
24957
dc66eb4cd17a
Standardize behavior: no docstrings in test functions.
Guido van Rossum <guido@python.org>
parents:
24364
diff
changeset
|
15 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
16 def roundtrip(self, f, s): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
17 st1 = f(s) |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
18 t = st1.totuple() |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
19 try: |
|
18670
384b9113a2e0
Use the "st" versions of the "ast" calls in the parser module -- there is
Fred Drake <fdrake@acm.org>
parents:
18647
diff
changeset
|
20 st2 = parser.sequence2st(t) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
21 except parser.ParserError as why: |
|
32888
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
22 self.fail("could not roundtrip %r: %s" % (s, why)) |
|
14214
b5fb175ad528
Update the parser module to support augmented assignment.
Fred Drake <fdrake@acm.org>
parents:
14111
diff
changeset
|
23 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
24 self.assertEquals(t, st2.totuple(), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
25 "could not re-generate syntax tree") |
|
14214
b5fb175ad528
Update the parser module to support augmented assignment.
Fred Drake <fdrake@acm.org>
parents:
14111
diff
changeset
|
26 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
27 def check_expr(self, s): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
28 self.roundtrip(parser.expr, s) |
|
14214
b5fb175ad528
Update the parser module to support augmented assignment.
Fred Drake <fdrake@acm.org>
parents:
14111
diff
changeset
|
29 |
|
49624
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
30 def test_flags_passed(self): |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
31 # The unicode literals flags has to be passed from the paser to AST |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
32 # generation. |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
33 suite = parser.suite("from __future__ import unicode_literals; x = ''") |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
34 code = suite.compile() |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
35 scope = {} |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
36 exec(code, {}, scope) |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
37 self.assertTrue(isinstance(scope["x"], str)) |
|
f3234e43e1fe
Merged revisions 67066 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48788
diff
changeset
|
38 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
39 def check_suite(self, s): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
40 self.roundtrip(parser.suite, s) |
|
14111
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
41 |
|
18647
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
42 def test_yield_statement(self): |
|
22719
fa0ac845929b
Remove some now-obsolete generator future statements.
Tim Peters <tim.peters@gmail.com>
parents:
20013
diff
changeset
|
43 self.check_suite("def f(): yield 1") |
|
35298
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
44 self.check_suite("def f(): yield") |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
45 self.check_suite("def f(): x += yield") |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
46 self.check_suite("def f(): x = yield 1") |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
47 self.check_suite("def f(): x = y = yield 1") |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
48 self.check_suite("def f(): x = yield") |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
49 self.check_suite("def f(): x = y = yield") |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
50 self.check_suite("def f(): 1 + (yield)*2") |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
51 self.check_suite("def f(): (yield 1)*2") |
|
22719
fa0ac845929b
Remove some now-obsolete generator future statements.
Tim Peters <tim.peters@gmail.com>
parents:
20013
diff
changeset
|
52 self.check_suite("def f(): return; yield 1") |
|
fa0ac845929b
Remove some now-obsolete generator future statements.
Tim Peters <tim.peters@gmail.com>
parents:
20013
diff
changeset
|
53 self.check_suite("def f(): yield 1; return") |
|
fa0ac845929b
Remove some now-obsolete generator future statements.
Tim Peters <tim.peters@gmail.com>
parents:
20013
diff
changeset
|
54 self.check_suite("def f():\n" |
|
18647
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
55 " for x in range(30):\n" |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
56 " yield x\n") |
|
35298
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
57 self.check_suite("def f():\n" |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
58 " if (yield):\n" |
|
b2fe5f8fcfdd
PEP 342 implementation. Per Guido's comments, the generator throw()
Phillip J. Eby <pje@telecommunity.com>
parents:
34920
diff
changeset
|
59 " yield x\n") |
|
18647
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
60 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
61 def test_expressions(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
62 self.check_expr("foo(1)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
63 self.check_expr("[1, 2, 3]") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
64 self.check_expr("[x**3 for x in range(20)]") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
65 self.check_expr("[x**3 for x in range(20) if x % 3]") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
35742
diff
changeset
|
66 self.check_expr("[x**3 for x in range(20) if x % 2 if x % 3]") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
35742
diff
changeset
|
67 self.check_expr("list(x**3 for x in range(20))") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
35742
diff
changeset
|
68 self.check_expr("list(x**3 for x in range(20) if x % 3)") |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
35742
diff
changeset
|
69 self.check_expr("list(x**3 for x in range(20) if x % 2 if x % 3)") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
70 self.check_expr("foo(*args)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
71 self.check_expr("foo(*args, **kw)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
72 self.check_expr("foo(**kw)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
73 self.check_expr("foo(key=value)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
74 self.check_expr("foo(key=value, *args)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
75 self.check_expr("foo(key=value, *args, **kw)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
76 self.check_expr("foo(key=value, **kw)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
77 self.check_expr("foo(a, b, c, *args)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
78 self.check_expr("foo(a, b, c, *args, **kw)") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
79 self.check_expr("foo(a, b, c, **kw)") |
|
48788
6d6d3e037550
Merged revisions 65885,65892,65894,65898 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
80 self.check_expr("foo(a, *args, keyword=23)") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
81 self.check_expr("foo + bar") |
|
27517
51abb5e86226
Teach the parsermodule about floor division. Fixes
Michael W. Hudson <mwh@python.net>
parents:
24957
diff
changeset
|
82 self.check_expr("foo - bar") |
|
51abb5e86226
Teach the parsermodule about floor division. Fixes
Michael W. Hudson <mwh@python.net>
parents:
24957
diff
changeset
|
83 self.check_expr("foo * bar") |
|
51abb5e86226
Teach the parsermodule about floor division. Fixes
Michael W. Hudson <mwh@python.net>
parents:
24957
diff
changeset
|
84 self.check_expr("foo / bar") |
|
51abb5e86226
Teach the parsermodule about floor division. Fixes
Michael W. Hudson <mwh@python.net>
parents:
24957
diff
changeset
|
85 self.check_expr("foo // bar") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
86 self.check_expr("lambda: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
87 self.check_expr("lambda x: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
88 self.check_expr("lambda *y: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
89 self.check_expr("lambda *y, **z: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
90 self.check_expr("lambda **z: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
91 self.check_expr("lambda x, y: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
92 self.check_expr("lambda foo=bar: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
93 self.check_expr("lambda foo=bar, spaz=nifty+spit: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
94 self.check_expr("lambda foo=bar, **z: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
95 self.check_expr("lambda foo=bar, blaz=blat+2, **z: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
96 self.check_expr("lambda foo=bar, blaz=blat+2, *y, **z: 0") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
97 self.check_expr("lambda x, *y, **z: 0") |
|
32121
302d399cfd37
SF patch #872326: Generator expression implementation
Raymond Hettinger <python@rcn.com>
parents:
28917
diff
changeset
|
98 self.check_expr("(x for x in range(10))") |
|
302d399cfd37
SF patch #872326: Generator expression implementation
Raymond Hettinger <python@rcn.com>
parents:
28917
diff
changeset
|
99 self.check_expr("foo(x for x in range(10))") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
100 |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
101 def test_simple_expression(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
102 # expr_stmt |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
103 self.check_suite("a") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
104 |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
105 def test_simple_assignments(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
106 self.check_suite("a = b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
107 self.check_suite("a = b = c = d = e") |
|
14214
b5fb175ad528
Update the parser module to support augmented assignment.
Fred Drake <fdrake@acm.org>
parents:
14111
diff
changeset
|
108 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
109 def test_simple_augmented_assignments(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
110 self.check_suite("a += b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
111 self.check_suite("a -= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
112 self.check_suite("a *= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
113 self.check_suite("a /= b") |
|
27517
51abb5e86226
Teach the parsermodule about floor division. Fixes
Michael W. Hudson <mwh@python.net>
parents:
24957
diff
changeset
|
114 self.check_suite("a //= b") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
115 self.check_suite("a %= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
116 self.check_suite("a &= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
117 self.check_suite("a |= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
118 self.check_suite("a ^= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
119 self.check_suite("a <<= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
120 self.check_suite("a >>= b") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
121 self.check_suite("a **= b") |
|
15752
c0822a05e923
Add more regression tests, including for the import statement variations.
Fred Drake <fdrake@acm.org>
parents:
15507
diff
changeset
|
122 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
123 def test_function_defs(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
124 self.check_suite("def f(): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
125 self.check_suite("def f(*args): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
126 self.check_suite("def f(*args, **kw): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
127 self.check_suite("def f(**kw): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
128 self.check_suite("def f(foo=bar): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
129 self.check_suite("def f(foo=bar, *args): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
130 self.check_suite("def f(foo=bar, *args, **kw): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
131 self.check_suite("def f(foo=bar, **kw): pass") |
|
15752
c0822a05e923
Add more regression tests, including for the import statement variations.
Fred Drake <fdrake@acm.org>
parents:
15507
diff
changeset
|
132 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
133 self.check_suite("def f(a, b): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
134 self.check_suite("def f(a, b, *args): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
135 self.check_suite("def f(a, b, *args, **kw): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
136 self.check_suite("def f(a, b, **kw): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
137 self.check_suite("def f(a, b, foo=bar): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
138 self.check_suite("def f(a, b, foo=bar, *args): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
139 self.check_suite("def f(a, b, foo=bar, *args, **kw): pass") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
140 self.check_suite("def f(a, b, foo=bar, **kw): pass") |
|
15752
c0822a05e923
Add more regression tests, including for the import statement variations.
Fred Drake <fdrake@acm.org>
parents:
15507
diff
changeset
|
141 |
|
32888
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
142 self.check_suite("@staticmethod\n" |
|
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
143 "def f(): pass") |
|
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
144 self.check_suite("@staticmethod\n" |
|
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
145 "@funcattrs(x, y)\n" |
|
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
146 "def f(): pass") |
|
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
147 self.check_suite("@funcattrs()\n" |
|
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
148 "def f(): pass") |
|
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32121
diff
changeset
|
149 |
|
34887
7c2780c9e51b
Flush out support for ``class B(): pass`` syntax by adding support to the
Brett Cannon <bcannon@gmail.com>
parents:
33353
diff
changeset
|
150 def test_class_defs(self): |
|
7c2780c9e51b
Flush out support for ``class B(): pass`` syntax by adding support to the
Brett Cannon <bcannon@gmail.com>
parents:
33353
diff
changeset
|
151 self.check_suite("class foo():pass") |
|
43862
d4f9706cb46b
Patch 1144 by David Binger, fix for parser module. With unittest.
Guido van Rossum <guido@python.org>
parents:
42312
diff
changeset
|
152 self.check_suite("class foo(object):pass") |
|
34920
67a89b43dcc7
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
34887
diff
changeset
|
153 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
154 def test_import_from_statement(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
155 self.check_suite("from sys.path import *") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
156 self.check_suite("from sys.path import dirname") |
|
33353
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
157 self.check_suite("from sys.path import (dirname)") |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
158 self.check_suite("from sys.path import (dirname,)") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
159 self.check_suite("from sys.path import dirname as my_dirname") |
|
33353
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
160 self.check_suite("from sys.path import (dirname as my_dirname)") |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
161 self.check_suite("from sys.path import (dirname as my_dirname,)") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
162 self.check_suite("from sys.path import dirname, basename") |
|
33353
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
163 self.check_suite("from sys.path import (dirname, basename)") |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
164 self.check_suite("from sys.path import (dirname, basename,)") |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
165 self.check_suite( |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
166 "from sys.path import dirname as my_dirname, basename") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
167 self.check_suite( |
|
33353
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
168 "from sys.path import (dirname as my_dirname, basename)") |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
169 self.check_suite( |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
170 "from sys.path import (dirname as my_dirname, basename,)") |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
171 self.check_suite( |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
172 "from sys.path import dirname, basename as my_basename") |
|
33353
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
173 self.check_suite( |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
174 "from sys.path import (dirname, basename as my_basename)") |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
175 self.check_suite( |
|
f7474d31ba3f
SF patch #1007189, multi-line imports, for instance:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
32888
diff
changeset
|
176 "from sys.path import (dirname, basename as my_basename,)") |
|
49633
bd0e9a9cd283
Merged revisions 67028,67040,67044,67046,67052,67065,67070,67077,67082 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49624
diff
changeset
|
177 self.check_suite("from .bogus import x") |
|
15752
c0822a05e923
Add more regression tests, including for the import statement variations.
Fred Drake <fdrake@acm.org>
parents:
15507
diff
changeset
|
178 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
179 def test_basic_import_statement(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
180 self.check_suite("import sys") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
181 self.check_suite("import sys as system") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
182 self.check_suite("import sys, math") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
183 self.check_suite("import sys as system, math") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
184 self.check_suite("import sys, math as my_math") |
|
14111
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
185 |
|
27777
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
186 def test_pep263(self): |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
187 self.check_suite("# -*- coding: iso-8859-1 -*-\n" |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
188 "pass\n") |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
189 |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
190 def test_assert(self): |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
191 self.check_suite("assert alo < ahi and blo < bhi\n") |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
192 |
|
49908
ed8adfef26c6
Merged revisions 67348,67355,67359,67362,67364-67365,67367-67368,67398,67423-67424,67432,67440-67441,67444-67445,67454-67455,67457-67458 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49633
diff
changeset
|
193 def test_with(self): |
|
ed8adfef26c6
Merged revisions 67348,67355,67359,67362,67364-67365,67367-67368,67398,67423-67424,67432,67440-67441,67444-67445,67454-67455,67457-67458 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49633
diff
changeset
|
194 self.check_suite("with open('x'): pass\n") |
|
ed8adfef26c6
Merged revisions 67348,67355,67359,67362,67364-67365,67367-67368,67398,67423-67424,67432,67440-67441,67444-67445,67454-67455,67457-67458 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49633
diff
changeset
|
195 self.check_suite("with open('x') as f: pass\n") |
|
ed8adfef26c6
Merged revisions 67348,67355,67359,67362,67364-67365,67367-67368,67398,67423-67424,67432,67440-67441,67444-67445,67454-67455,67457-67458 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49633
diff
changeset
|
196 |
|
50079
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
197 def test_try_stmt(self): |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
198 self.check_suite("try: pass\nexcept: pass\n") |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
199 self.check_suite("try: pass\nfinally: pass\n") |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
200 self.check_suite("try: pass\nexcept A: pass\nfinally: pass\n") |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
201 self.check_suite("try: pass\nexcept A: pass\nexcept: pass\n" |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
202 "finally: pass\n") |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
203 self.check_suite("try: pass\nexcept: pass\nelse: pass\n") |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
204 self.check_suite("try: pass\nexcept: pass\nelse: pass\n" |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
205 "finally: pass\n") |
|
a86cdf49b821
Manual merge of r67639 from py3k branch:
Georg Brandl <georg@python.org>
parents:
49908
diff
changeset
|
206 |
|
40450
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
207 def test_position(self): |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
208 # An absolutely minimal test of position information. Better |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
209 # tests would be a big project. |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
210 code = "def f(x):\n return x + 1\n" |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
211 st1 = parser.suite(code) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
212 st2 = st1.totuple(line_info=1, col_info=1) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
213 |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
214 def walk(tree): |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
215 node_type = tree[0] |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
216 next = tree[1] |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
217 if isinstance(next, tuple): |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
218 for elt in tree[1:]: |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
219 for x in walk(elt): |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
220 yield x |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
221 else: |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
222 yield tree |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
223 |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
224 terminals = list(walk(st2)) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
225 self.assertEqual([ |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
226 (1, 'def', 1, 0), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
227 (1, 'f', 1, 4), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
228 (7, '(', 1, 5), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
229 (1, 'x', 1, 6), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
230 (8, ')', 1, 7), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
231 (11, ':', 1, 8), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
232 (4, '', 1, 9), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
233 (5, '', 2, -1), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
234 (1, 'return', 2, 4), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
235 (1, 'x', 2, 11), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
236 (14, '+', 2, 13), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
237 (2, '1', 2, 15), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
238 (4, '', 2, 16), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
239 (6, '', 2, -1), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
240 (4, '', 2, -1), |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
241 (0, '', 2, -1)], |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
242 terminals) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
243 |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39782
diff
changeset
|
244 |
|
14111
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
245 # |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
246 # Second, we take *invalid* trees and make sure we get ParserError |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
247 # rejections for them. |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
248 # |
|
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
249 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
250 class IllegalSyntaxTestCase(unittest.TestCase): |
|
24957
dc66eb4cd17a
Standardize behavior: no docstrings in test functions.
Guido van Rossum <guido@python.org>
parents:
24364
diff
changeset
|
251 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
252 def check_bad_tree(self, tree, label): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
253 try: |
|
18670
384b9113a2e0
Use the "st" versions of the "ast" calls in the parser module -- there is
Fred Drake <fdrake@acm.org>
parents:
18647
diff
changeset
|
254 parser.sequence2st(tree) |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
255 except parser.ParserError: |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
256 pass |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
257 else: |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
258 self.fail("did not detect invalid tree for %r" % label) |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
259 |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
260 def test_junk(self): |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
261 # not even remotely valid: |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
262 self.check_bad_tree((1, 2, 3), "<junk>") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
263 |
|
18647
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
264 def test_illegal_yield_1(self): |
|
24957
dc66eb4cd17a
Standardize behavior: no docstrings in test functions.
Guido van Rossum <guido@python.org>
parents:
24364
diff
changeset
|
265 # Illegal yield statement: def f(): return 1; yield 1 |
|
18647
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
266 tree = \ |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
267 (257, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
268 (264, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
269 (285, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
270 (259, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
271 (1, 'def'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
272 (1, 'f'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
273 (260, (7, '('), (8, ')')), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
274 (11, ':'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
275 (291, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
276 (4, ''), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
277 (5, ''), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
278 (264, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
279 (265, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
280 (266, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
281 (272, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
282 (275, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
283 (1, 'return'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
284 (313, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
285 (292, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
286 (293, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
287 (294, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
288 (295, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
289 (297, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
290 (298, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
291 (299, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
292 (300, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
293 (301, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
294 (302, (303, (304, (305, (2, '1')))))))))))))))))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
295 (264, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
296 (265, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
297 (266, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
298 (272, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
299 (276, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
300 (1, 'yield'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
301 (313, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
302 (292, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
303 (293, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
304 (294, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
305 (295, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
306 (297, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
307 (298, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
308 (299, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
309 (300, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
310 (301, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
311 (302, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
312 (303, (304, (305, (2, '1')))))))))))))))))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
313 (4, ''))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
314 (6, ''))))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
315 (4, ''), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
316 (0, '')))) |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
317 self.check_bad_tree(tree, "def f():\n return 1\n yield 1") |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
318 |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
319 def test_illegal_yield_2(self): |
|
24957
dc66eb4cd17a
Standardize behavior: no docstrings in test functions.
Guido van Rossum <guido@python.org>
parents:
24364
diff
changeset
|
320 # Illegal return in generator: def f(): return 1; yield 1 |
|
18647
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
321 tree = \ |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
322 (257, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
323 (264, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
324 (265, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
325 (266, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
326 (278, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
327 (1, 'from'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
328 (281, (1, '__future__')), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
329 (1, 'import'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
330 (279, (1, 'generators')))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
331 (4, ''))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
332 (264, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
333 (285, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
334 (259, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
335 (1, 'def'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
336 (1, 'f'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
337 (260, (7, '('), (8, ')')), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
338 (11, ':'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
339 (291, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
340 (4, ''), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
341 (5, ''), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
342 (264, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
343 (265, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
344 (266, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
345 (272, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
346 (275, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
347 (1, 'return'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
348 (313, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
349 (292, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
350 (293, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
351 (294, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
352 (295, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
353 (297, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
354 (298, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
355 (299, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
356 (300, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
357 (301, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
358 (302, (303, (304, (305, (2, '1')))))))))))))))))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
359 (264, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
360 (265, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
361 (266, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
362 (272, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
363 (276, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
364 (1, 'yield'), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
365 (313, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
366 (292, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
367 (293, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
368 (294, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
369 (295, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
370 (297, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
371 (298, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
372 (299, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
373 (300, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
374 (301, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
375 (302, |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
376 (303, (304, (305, (2, '1')))))))))))))))))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
377 (4, ''))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
378 (6, ''))))), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
379 (4, ''), |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
380 (0, '')))) |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
381 self.check_bad_tree(tree, "def f():\n return 1\n yield 1") |
|
ad82cafe45ac
Added tests for the new yield support in the parser module.
Fred Drake <fdrake@acm.org>
parents:
18027
diff
changeset
|
382 |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
383 def test_a_comma_comma_c(self): |
|
24957
dc66eb4cd17a
Standardize behavior: no docstrings in test functions.
Guido van Rossum <guido@python.org>
parents:
24364
diff
changeset
|
384 # Illegal input: a,,c |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
385 tree = \ |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
386 (258, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
387 (311, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
388 (290, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
389 (291, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
390 (292, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
391 (293, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
392 (295, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
393 (296, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
394 (297, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
395 (298, (299, (300, (301, (302, (303, (1, 'a')))))))))))))), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
396 (12, ','), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
397 (12, ','), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
398 (290, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
399 (291, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
400 (292, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
401 (293, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
402 (295, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
403 (296, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
404 (297, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
405 (298, (299, (300, (301, (302, (303, (1, 'c'))))))))))))))), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
406 (4, ''), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
407 (0, '')) |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
408 self.check_bad_tree(tree, "a,,c") |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
409 |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
410 def test_illegal_operator(self): |
|
24957
dc66eb4cd17a
Standardize behavior: no docstrings in test functions.
Guido van Rossum <guido@python.org>
parents:
24364
diff
changeset
|
411 # Illegal input: a $= b |
|
18027
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
412 tree = \ |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
413 (257, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
414 (264, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
415 (265, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
416 (266, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
417 (267, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
418 (312, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
419 (291, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
420 (292, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
421 (293, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
422 (294, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
423 (296, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
424 (297, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
425 (298, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
426 (299, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
427 (300, (301, (302, (303, (304, (1, 'a'))))))))))))))), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
428 (268, (37, '$=')), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
429 (312, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
430 (291, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
431 (292, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
432 (293, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
433 (294, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
434 (296, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
435 (297, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
436 (298, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
437 (299, |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
438 (300, (301, (302, (303, (304, (1, 'b'))))))))))))))))), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
439 (4, ''))), |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
440 (0, '')) |
|
5391b9d022ac
Convert the parser module test to use PyUnit.
Fred Drake <fdrake@acm.org>
parents:
15966
diff
changeset
|
441 self.check_bad_tree(tree, "a $= b") |
|
14111
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
442 |
|
27777
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
443 def test_malformed_global(self): |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
444 #doesn't have global keyword in ast |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
445 tree = (257, |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
446 (264, |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
447 (265, |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
448 (266, |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
449 (282, (1, 'foo'))), (4, ''))), |
|
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
450 (4, ''), |
|
27963
226463445697
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27777
diff
changeset
|
451 (0, '')) |
|
27777
5f6931b8352e
Add tests and news entry about parser errors from bug #678518.
Neal Norwitz <nnorwitz@gmail.com>
parents:
27517
diff
changeset
|
452 self.check_bad_tree(tree, "malformed global ast") |
|
14111
87b8f0ea50e8
Add a minimal test suite for the parser module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
453 |
|
35742
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
454 |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
455 class CompileTestCase(unittest.TestCase): |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
456 |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
457 # These tests are very minimal. :-( |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
458 |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
459 def test_compile_expr(self): |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
460 st = parser.expr('2 + 3') |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
461 code = parser.compilest(st) |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
462 self.assertEquals(eval(code), 5) |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
463 |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
464 def test_compile_suite(self): |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
465 st = parser.suite('x = 2; y = x + 3') |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
466 code = parser.compilest(st) |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
467 globs = {} |
|
39782
c94f37054f19
Patch #1550800: make exec a function.
Georg Brandl <georg@python.org>
parents:
37879
diff
changeset
|
468 exec(code, globs) |
|
35742
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
469 self.assertEquals(globs['y'], 5) |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
470 |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
471 def test_compile_error(self): |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
472 st = parser.suite('1 = 3 + 4') |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
473 self.assertRaises(SyntaxError, parser.compilest, st) |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
474 |
|
42309
bd6acfdb47d2
Merged revisions 56301-56442 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40788
diff
changeset
|
475 def test_compile_badunicode(self): |
|
42312
007ed6cdd1f7
Make test_parser pass after merge.
Guido van Rossum <guido@python.org>
parents:
42309
diff
changeset
|
476 st = parser.suite('a = "\\U12345678"') |
|
42309
bd6acfdb47d2
Merged revisions 56301-56442 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40788
diff
changeset
|
477 self.assertRaises(SyntaxError, parser.compilest, st) |
|
42312
007ed6cdd1f7
Make test_parser pass after merge.
Guido van Rossum <guido@python.org>
parents:
42309
diff
changeset
|
478 st = parser.suite('a = "\\u1"') |
|
42309
bd6acfdb47d2
Merged revisions 56301-56442 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40788
diff
changeset
|
479 self.assertRaises(SyntaxError, parser.compilest, st) |
|
bd6acfdb47d2
Merged revisions 56301-56442 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40788
diff
changeset
|
480 |
|
45446
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
481 class ParserStackLimitTestCase(unittest.TestCase): |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
482 """try to push the parser to/over it's limits. |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
483 see http://bugs.python.org/issue1881 for a discussion |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
484 """ |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
485 def _nested_expression(self, level): |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
486 return "["*level+"]"*level |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
487 |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
488 def test_deeply_nested_list(self): |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
489 # XXX used to be 99 levels in 2.x |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
490 e = self._nested_expression(93) |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
491 st = parser.expr(e) |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
492 st.compile() |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
493 |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
494 def test_trigger_memory_error(self): |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
495 e = self._nested_expression(100) |
|
45852
30c4e1ca8421
Merged revisions 61431,61433-61436,61439,61444,61449-61450,61453,61458,61465,61468,61471-61474,61480,61483-61484,61488,61495-61496,61498,61503-61504,61507,61509-61510,61515-61518 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45446
diff
changeset
|
496 print("Expecting 's_push: parser stack overflow' in next line", |
|
30c4e1ca8421
Merged revisions 61431,61433-61436,61439,61444,61449-61450,61453,61458,61465,61468,61471-61474,61480,61483-61484,61488,61495-61496,61498,61503-61504,61507,61509-61510,61515-61518 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45446
diff
changeset
|
497 file=sys.stderr) |
|
45446
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
498 self.assertRaises(MemoryError, parser.expr, e) |
|
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
499 |
|
51244
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
500 class STObjectTestCase(unittest.TestCase): |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
501 """Test operations on ST objects themselves""" |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
502 |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
503 def test_comparisons(self): |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
504 # ST objects should support order and equality comparisons |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
505 st1 = parser.expr('2 + 3') |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
506 st2 = parser.suite('x = 2; y = x + 3') |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
507 st3 = parser.expr('list(x**3 for x in range(20))') |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
508 st1_copy = parser.expr('2 + 3') |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
509 st2_copy = parser.suite('x = 2; y = x + 3') |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
510 st3_copy = parser.expr('list(x**3 for x in range(20))') |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
511 |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
512 # exercise fast path for object identity |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
513 self.assertEquals(st1 == st1, True) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
514 self.assertEquals(st2 == st2, True) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
515 self.assertEquals(st3 == st3, True) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
516 # slow path equality |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
517 self.assertEqual(st1, st1_copy) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
518 self.assertEqual(st2, st2_copy) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
519 self.assertEqual(st3, st3_copy) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
520 self.assertEquals(st1 == st2, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
521 self.assertEquals(st1 == st3, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
522 self.assertEquals(st2 == st3, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
523 self.assertEquals(st1 != st1, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
524 self.assertEquals(st2 != st2, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
525 self.assertEquals(st3 != st3, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
526 self.assertEquals(st1 != st1_copy, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
527 self.assertEquals(st2 != st2_copy, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
528 self.assertEquals(st3 != st3_copy, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
529 self.assertEquals(st2 != st1, True) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
530 self.assertEquals(st1 != st3, True) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
531 self.assertEquals(st3 != st2, True) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
532 # we don't particularly care what the ordering is; just that |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
533 # it's usable and self-consistent |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
534 self.assertEquals(st1 < st2, not (st2 <= st1)) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
535 self.assertEquals(st1 < st3, not (st3 <= st1)) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
536 self.assertEquals(st2 < st3, not (st3 <= st2)) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
537 self.assertEquals(st1 < st2, st2 > st1) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
538 self.assertEquals(st1 < st3, st3 > st1) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
539 self.assertEquals(st2 < st3, st3 > st2) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
540 self.assertEquals(st1 <= st2, st2 >= st1) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
541 self.assertEquals(st3 <= st1, st1 >= st3) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
542 self.assertEquals(st2 <= st3, st3 >= st2) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
543 # transitivity |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
544 bottom = min(st1, st2, st3) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
545 top = max(st1, st2, st3) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
546 mid = sorted([st1, st2, st3])[1] |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
547 self.assert_(bottom < mid) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
548 self.assert_(bottom < top) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
549 self.assert_(mid < top) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
550 self.assert_(bottom <= mid) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
551 self.assert_(bottom <= top) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
552 self.assert_(mid <= top) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
553 self.assert_(bottom <= bottom) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
554 self.assert_(mid <= mid) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
555 self.assert_(top <= top) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
556 # interaction with other types |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
557 self.assertEquals(st1 == 1588.602459, False) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
558 self.assertEquals('spanish armada' != st2, True) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
559 self.assertRaises(TypeError, operator.ge, st3, None) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
560 self.assertRaises(TypeError, operator.le, False, st1) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
561 self.assertRaises(TypeError, operator.lt, st1, 1815) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
562 self.assertRaises(TypeError, operator.gt, b'waterloo', st2) |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
563 |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
564 |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
565 # XXX tests for pickling and unpickling of ST objects should go here |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
566 |
|
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
567 |
|
20013
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18670
diff
changeset
|
568 def test_main(): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45852
diff
changeset
|
569 support.run_unittest( |
|
28917
1741af48fd9f
Combine the functionality of test_support.run_unittest()
Walter Dörwald <walter@livinglogic.de>
parents:
27963
diff
changeset
|
570 RoundtripLegalSyntaxTestCase, |
|
35742
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
571 IllegalSyntaxTestCase, |
|
1c4d192f1568
Merge ast-branch to head
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
35298
diff
changeset
|
572 CompileTestCase, |
|
45446
5e0772ed20d1
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900,60902-60906,60908,60911-60917,60919-60920,60922,60926,60929-60931,60933-60935,60937,60939-60941,60943-60954,60959-60961,60963-60969,60971-60976 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
43862
diff
changeset
|
573 ParserStackLimitTestCase, |
|
51244
e9675d72e3e3
Merged revisions 69181 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
50079
diff
changeset
|
574 STObjectTestCase, |
|
28917
1741af48fd9f
Combine the functionality of test_support.run_unittest()
Walter Dörwald <walter@livinglogic.de>
parents:
27963
diff
changeset
|
575 ) |
|
20013
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18670
diff
changeset
|
576 |
|
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18670
diff
changeset
|
577 |
|
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18670
diff
changeset
|
578 if __name__ == "__main__": |
|
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18670
diff
changeset
|
579 test_main() |
