📄 test_unp.py
字号:
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 IndexErrora = -1b = -1c = -1# unpack tupleif verbose: print 'unpack tuple'a, b, c = tif a <> 1 or b <> 2 or c <> 3: raise TestFailed# unpack listif verbose: print 'unpack list'a, b, c = lif a <> 4 or b <> 5 or c <> 6: raise TestFailed# unpack implied tupleif verbose: print 'unpack implied tuple'a, b, c = 7, 8, 9if 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 sequenceif 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-sequenceif verbose: print 'unpack non-sequence'try: a, b, c = 7 raise TestFailedexcept TypeError: pass# unpacking tuple of wrong sizeif verbose: print 'unpack tuple wrong size'try: a, b = t raise TestFailedexcept ValueError: pass# unpacking list of wrong sizeif verbose: print 'unpack list wrong size'try: a, b = l raise TestFailedexcept ValueError: pass# unpacking sequence too shortif verbose: print 'unpack sequence too short'try: a, b, c, d = Seq() raise TestFailedexcept ValueError: pass# unpacking sequence too longif verbose: print 'unpack sequence too long'try: a, b = Seq() raise TestFailedexcept ValueError: pass# unpacking a sequence where the test for too long raises a different# kind of errorBozoError = '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 IndexErrorif verbose: print 'unpack sequence too long, wrong error'try: a, b, c, d, e = BadSeq() raise TestFailedexcept BozoError: pass# trigger code while expecting an IndexErrorif verbose: print 'unpack sequence too short, wrong error'try: a, b, c = BadSeq() raise TestFailedexcept BozoError: pass
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -