annotate Lib/test/test_unpack.py @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents 1d84bf5f9478
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
1 doctests = """
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
2
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
3 Unpack tuple
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
4
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
5 >>> t = (1, 2, 3)
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
6 >>> a, b, c = t
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
7 >>> a == 1 and b == 2 and c == 3
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
8 True
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
9
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
10 Unpack list
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
11
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
12 >>> l = [4, 5, 6]
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
13 >>> a, b, c = l
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
14 >>> a == 4 and b == 5 and c == 6
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
15 True
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
16
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
17 Unpack implied tuple
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
18
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
19 >>> a, b, c = 7, 8, 9
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
20 >>> a == 7 and b == 8 and c == 9
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
21 True
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
22
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
23 Unpack string... fun!
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
24
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
25 >>> a, b, c = 'one'
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
26 >>> a == 'o' and b == 'n' and c == 'e'
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
27 True
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
28
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
29 Unpack generic sequence
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
30
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
31 >>> class Seq:
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
32 ... def __getitem__(self, i):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
33 ... if i >= 0 and i < 3: return i
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
34 ... raise IndexError
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
35 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
36 >>> a, b, c = Seq()
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
37 >>> a == 0 and b == 1 and c == 2
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
38 True
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
39
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
40 Single element unpacking, with extra syntax
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
41
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
42 >>> st = (99,)
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
43 >>> sl = [100]
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
44 >>> a, = st
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
45 >>> a
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
46 99
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
47 >>> b, = sl
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
48 >>> b
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
49 100
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
50
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
51 Now for some failures
15172
d2f4d748c921 Added some single tuple/list unpacking for JPython regression testing.
Barry Warsaw <barry@python.org>
parents: 14061
diff changeset
52
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
53 Unpacking non-sequence
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
54
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
55 >>> a, b, c = 7
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
56 Traceback (most recent call last):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
57 ...
41256
9cf22c5eee3d Patch #1682205: a TypeError while unpacking an iterable is no longer
Georg Brandl <georg@python.org>
parents: 33562
diff changeset
58 TypeError: 'int' object is not iterable
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
59
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
60 Unpacking tuple of wrong size
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
61
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
62 >>> a, b = t
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
63 Traceback (most recent call last):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
64 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
65 ValueError: too many values to unpack
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
66
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
67 Unpacking tuple of wrong size
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
68
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
69 >>> a, b = l
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
70 Traceback (most recent call last):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
71 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
72 ValueError: too many values to unpack
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
73
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
74 Unpacking sequence too short
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
75
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
76 >>> a, b, c, d = Seq()
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
77 Traceback (most recent call last):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
78 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
79 ValueError: need more than 3 values to unpack
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
80
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
81 Unpacking sequence too long
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
82
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
83 >>> a, b = Seq()
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
84 Traceback (most recent call last):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
85 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
86 ValueError: too many values to unpack
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
87
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
88 Unpacking a sequence where the test for too long raises a different kind of
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
89 error
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
90
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
91 >>> class BozoError(Exception):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
92 ... pass
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
93 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
94 >>> class BadSeq:
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
95 ... def __getitem__(self, i):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
96 ... if i >= 0 and i < 3:
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
97 ... return i
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
98 ... elif i == 3:
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
99 ... raise BozoError
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
100 ... else:
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
101 ... raise IndexError
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
102 ...
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
103
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
104 Trigger code while not expecting an IndexError (unpack sequence too long, wrong
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
105 error)
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
106
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
107 >>> a, b, c, d, e = BadSeq()
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
108 Traceback (most recent call last):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
109 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
110 BozoError
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
111
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
112 Trigger code while expecting an IndexError (unpack sequence too short, wrong
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
113 error)
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
114
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
115 >>> a, b, c = BadSeq()
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
116 Traceback (most recent call last):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
117 ...
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
118 BozoError
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
119
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
120 """
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
121
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
122 __test__ = {'doctests' : doctests}
6159
2b03a1dfdbd3 regression test for new sequence unpacking semantics
Barry Warsaw <barry@python.org>
parents:
diff changeset
123
33562
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
124 def test_main(verbose=False):
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
125 from test import test_support
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
126 from test import test_unpack
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
127 test_support.run_doctest(test_unpack, verbose)
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
128
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
129 if __name__ == "__main__":
c39f83fdd4d0 Port test_unpack to doctest (patch #736962).
Johannes Gijsbers <jlg@dds.nl>
parents: 24442
diff changeset
130 test_main(verbose=True)