]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_opcodes.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / test / test_opcodes.py
CommitLineData
4710c53d 1# Python test set -- part 2, opcodes\r
2\r
3from test.test_support import run_unittest, check_py3k_warnings\r
4import unittest\r
5\r
6class OpcodeTest(unittest.TestCase):\r
7\r
8 def test_try_inside_for_loop(self):\r
9 n = 0\r
10 for i in range(10):\r
11 n = n+i\r
12 try: 1 // 0\r
13 except NameError: pass\r
14 except ZeroDivisionError: pass\r
15 except TypeError: pass\r
16 try: pass\r
17 except: pass\r
18 try: pass\r
19 finally: pass\r
20 n = n+i\r
21 if n != 90:\r
22 self.fail('try inside for')\r
23\r
24 def test_raise_class_exceptions(self):\r
25\r
26 class AClass: pass\r
27 class BClass(AClass): pass\r
28 class CClass: pass\r
29 class DClass(AClass):\r
30 def __init__(self, ignore):\r
31 pass\r
32\r
33 try: raise AClass()\r
34 except: pass\r
35\r
36 try: raise AClass()\r
37 except AClass: pass\r
38\r
39 try: raise BClass()\r
40 except AClass: pass\r
41\r
42 try: raise BClass()\r
43 except CClass: self.fail()\r
44 except: pass\r
45\r
46 a = AClass()\r
47 b = BClass()\r
48\r
49 try: raise AClass, b\r
50 except BClass, v:\r
51 self.assertEqual(v, b)\r
52 else: self.fail("no exception")\r
53\r
54 try: raise b\r
55 except AClass, v:\r
56 self.assertEqual(v, b)\r
57 else:\r
58 self.fail("no exception")\r
59\r
60 # not enough arguments\r
61 try: raise BClass, a\r
62 except TypeError: pass\r
63 else: self.fail("no exception")\r
64\r
65 try: raise DClass, a\r
66 except DClass, v:\r
67 self.assertIsInstance(v, DClass)\r
68 else:\r
69 self.fail("no exception")\r
70\r
71 def test_compare_function_objects(self):\r
72\r
73 f = eval('lambda: None')\r
74 g = eval('lambda: None')\r
75 self.assertNotEqual(f, g)\r
76\r
77 f = eval('lambda a: a')\r
78 g = eval('lambda a: a')\r
79 self.assertNotEqual(f, g)\r
80\r
81 f = eval('lambda a=1: a')\r
82 g = eval('lambda a=1: a')\r
83 self.assertNotEqual(f, g)\r
84\r
85 f = eval('lambda: 0')\r
86 g = eval('lambda: 1')\r
87 self.assertNotEqual(f, g)\r
88\r
89 f = eval('lambda: None')\r
90 g = eval('lambda a: None')\r
91 self.assertNotEqual(f, g)\r
92\r
93 f = eval('lambda a: None')\r
94 g = eval('lambda b: None')\r
95 self.assertNotEqual(f, g)\r
96\r
97 f = eval('lambda a: None')\r
98 g = eval('lambda a=None: None')\r
99 self.assertNotEqual(f, g)\r
100\r
101 f = eval('lambda a=0: None')\r
102 g = eval('lambda a=1: None')\r
103 self.assertNotEqual(f, g)\r
104\r
105 def test_modulo_of_string_subclasses(self):\r
106 class MyString(str):\r
107 def __mod__(self, value):\r
108 return 42\r
109 self.assertEqual(MyString() % 3, 42)\r
110\r
111\r
112def test_main():\r
113 with check_py3k_warnings(("exceptions must derive from BaseException",\r
114 DeprecationWarning),\r
115 ("catching classes that don't inherit "\r
116 "from BaseException is not allowed",\r
117 DeprecationWarning)):\r
118 run_unittest(OpcodeTest)\r
119\r
120if __name__ == '__main__':\r
121 test_main()\r