1import unittest 2from test import test_support 3 4# The test cases here cover several paths through the function calling 5# code. They depend on the METH_XXX flag that is used to define a C 6# function, which can't be verified from Python. If the METH_XXX decl 7# for a C function changes, these tests may not cover the right paths. 8 9class CFunctionCalls(unittest.TestCase): 10 11 def test_varargs0(self): 12 self.assertRaises(TypeError, {}.has_key) 13 14 def test_varargs1(self): 15 with test_support.check_py3k_warnings(): 16 {}.has_key(0) 17 18 def test_varargs2(self): 19 self.assertRaises(TypeError, {}.has_key, 0, 1) 20 21 def test_varargs0_ext(self): 22 try: 23 {}.has_key(*()) 24 except TypeError: 25 pass 26 27 def test_varargs1_ext(self): 28 with test_support.check_py3k_warnings(): 29 {}.has_key(*(0,)) 30 31 def test_varargs2_ext(self): 32 try: 33 with test_support.check_py3k_warnings(): 34 {}.has_key(*(1, 2)) 35 except TypeError: 36 pass 37 else: 38 raise RuntimeError 39 40 def test_varargs0_kw(self): 41 self.assertRaises(TypeError, {}.has_key, x=2) 42 43 def test_varargs1_kw(self): 44 self.assertRaises(TypeError, {}.has_key, x=2) 45 46 def test_varargs2_kw(self): 47 self.assertRaises(TypeError, {}.has_key, x=2, y=2) 48 49 def test_oldargs0_0(self): 50 {}.keys() 51 52 def test_oldargs0_1(self): 53 self.assertRaises(TypeError, {}.keys, 0) 54 55 def test_oldargs0_2(self): 56 self.assertRaises(TypeError, {}.keys, 0, 1) 57 58 def test_oldargs0_0_ext(self): 59 {}.keys(*()) 60 61 def test_oldargs0_1_ext(self): 62 try: 63 {}.keys(*(0,)) 64 except TypeError: 65 pass 66 else: 67 raise RuntimeError 68 69 def test_oldargs0_2_ext(self): 70 try: 71 {}.keys(*(1, 2)) 72 except TypeError: 73 pass 74 else: 75 raise RuntimeError 76 77 def test_oldargs0_0_kw(self): 78 try: 79 {}.keys(x=2) 80 except TypeError: 81 pass 82 else: 83 raise RuntimeError 84 85 def test_oldargs0_1_kw(self): 86 self.assertRaises(TypeError, {}.keys, x=2) 87 88 def test_oldargs0_2_kw(self): 89 self.assertRaises(TypeError, {}.keys, x=2, y=2) 90 91 def test_oldargs1_0(self): 92 self.assertRaises(TypeError, [].count) 93 94 def test_oldargs1_1(self): 95 [].count(1) 96 97 def test_oldargs1_2(self): 98 self.assertRaises(TypeError, [].count, 1, 2) 99 100 def test_oldargs1_0_ext(self): 101 try: 102 [].count(*()) 103 except TypeError: 104 pass 105 else: 106 raise RuntimeError 107 108 def test_oldargs1_1_ext(self): 109 [].count(*(1,)) 110 111 def test_oldargs1_2_ext(self): 112 try: 113 [].count(*(1, 2)) 114 except TypeError: 115 pass 116 else: 117 raise RuntimeError 118 119 def test_oldargs1_0_kw(self): 120 self.assertRaises(TypeError, [].count, x=2) 121 122 def test_oldargs1_1_kw(self): 123 self.assertRaises(TypeError, [].count, {}, x=2) 124 125 def test_oldargs1_2_kw(self): 126 self.assertRaises(TypeError, [].count, x=2, y=2) 127 128 129def test_main(): 130 test_support.run_unittest(CFunctionCalls) 131 132 133if __name__ == "__main__": 134 test_main() 135