summaryrefslogtreecommitdiffstats
path: root/Lib/dos-8x3/test_unp.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-10-06 20:19:59 (GMT)
committerGuido van Rossum <guido@python.org>1997-10-06 20:19:59 (GMT)
commita11ccccd249c201df0224c84bbaacdb31496aa5b (patch)
treed5a3ed51586cbe829775209fa49f469935332782 /Lib/dos-8x3/test_unp.py
parentd57548023fa61918e545c0c808625df4f43e6ad4 (diff)
downloadcpython-a11ccccd249c201df0224c84bbaacdb31496aa5b.zip
cpython-a11ccccd249c201df0224c84bbaacdb31496aa5b.tar.gz
cpython-a11ccccd249c201df0224c84bbaacdb31496aa5b.tar.bz2
The usual (and some new modules).
Diffstat (limited to 'Lib/dos-8x3/test_unp.py')
-rw-r--r--Lib/dos-8x3/test_unp.py131
1 files changed, 131 insertions, 0 deletions
diff --git a/Lib/dos-8x3/test_unp.py b/Lib/dos-8x3/test_unp.py
new file mode 100644
index 0000000..1f69504
--- /dev/null
+++ b/Lib/dos-8x3/test_unp.py
@@ -0,0 +1,131 @@
+from test_support import *
+
+t = (1, 2, 3)
+l = [4, 5, 6]
+
+class Seq:
+ def __getitem__(self, i):
+ if i >= 0 and i < 3: return i
+ raise IndexError
+
+a = -1
+b = -1
+c = -1
+
+# unpack tuple
+if verbose:
+ print 'unpack tuple'
+a, b, c = t
+if a <> 1 or b <> 2 or c <> 3:
+ raise TestFailed
+
+# unpack list
+if verbose:
+ print 'unpack list'
+a, b, c = l
+if a <> 4 or b <> 5 or c <> 6:
+ raise TestFailed
+
+# unpack implied tuple
+if verbose:
+ print 'unpack implied tuple'
+a, b, c = 7, 8, 9
+if a <> 7 or b <> 8 or c <> 9:
+ raise TestFailed
+
+# unpack string... fun!
+if verbose:
+ print 'unpack string'
+a, b, c = 'one'
+if a <> 'o' or b <> 'n' or c <> 'e':
+ raise TestFailed
+
+# unpack generic sequence
+if verbose:
+ print 'unpack sequence'
+a, b, c = Seq()
+if a <> 0 or b <> 1 or c <> 2:
+ raise TestFailed
+
+# now for some failures
+
+# unpacking non-sequence
+if verbose:
+ print 'unpack non-sequence'
+try:
+ a, b, c = 7
+ raise TestFailed
+except TypeError:
+ pass
+
+
+# unpacking tuple of wrong size
+if verbose:
+ print 'unpack tuple wrong size'
+try:
+ a, b = t
+ raise TestFailed
+except ValueError:
+ pass
+
+# unpacking list of wrong size
+if verbose:
+ print 'unpack list wrong size'
+try:
+ a, b = l
+ raise TestFailed
+except ValueError:
+ pass
+
+
+# unpacking sequence too short
+if verbose:
+ print 'unpack sequence too short'
+try:
+ a, b, c, d = Seq()
+ raise TestFailed
+except ValueError:
+ pass
+
+
+# unpacking sequence too long
+if verbose:
+ print 'unpack sequence too long'
+try:
+ a, b = Seq()
+ raise TestFailed
+except ValueError:
+ pass
+
+
+# unpacking a sequence where the test for too long raises a different
+# kind of error
+BozoError = 'BozoError'
+
+class BadSeq:
+ def __getitem__(self, i):
+ if i >= 0 and i < 3:
+ return i
+ elif i == 3:
+ raise BozoError
+ else:
+ raise IndexError
+
+
+# trigger code while not expecting an IndexError
+if verbose:
+ print 'unpack sequence too long, wrong error'
+try:
+ a, b, c, d, e = BadSeq()
+ raise TestFailed
+except BozoError:
+ pass
+
+# trigger code while expecting an IndexError
+if verbose:
+ print 'unpack sequence too short, wrong error'
+try:
+ a, b, c = BadSeq()
+ raise TestFailed
+except BozoError:
+ pass