blob: 3bbc0814f5246e77a8007e370d8ca9440f38dfef [file] [log] [blame]
Jeremy Hyltonbea39472001-05-29 16:26:20 +00001import unittest
Walter Dörwald21d3a322003-05-01 17:45:56 +00002from test import test_support
Jeremy Hyltonbea39472001-05-29 16:26:20 +00003
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):
Senthil Kumaran3ddc4352010-01-08 18:41:40 +000015 # Silence Py3k warning
16 with test_support.check_warnings():
17 {}.has_key(0)
Jeremy Hyltonbea39472001-05-29 16:26:20 +000018
19 def test_varargs2(self):
20 self.assertRaises(TypeError, {}.has_key, 0, 1)
21
22 def test_varargs0_ext(self):
23 try:
24 {}.has_key(*())
25 except TypeError:
26 pass
27
28 def test_varargs1_ext(self):
Senthil Kumaran3ddc4352010-01-08 18:41:40 +000029 # Silence Py3k warning
30 with test_support.check_warnings():
31 {}.has_key(*(0,))
Jeremy Hyltonbea39472001-05-29 16:26:20 +000032
33 def test_varargs2_ext(self):
34 try:
Senthil Kumaran3ddc4352010-01-08 18:41:40 +000035 # Silence Py3k warning
36 with test_support.check_warnings():
37 {}.has_key(*(1, 2))
Jeremy Hyltonbea39472001-05-29 16:26:20 +000038 except TypeError:
39 pass
40 else:
41 raise RuntimeError
42
43 def test_varargs0_kw(self):
44 self.assertRaises(TypeError, {}.has_key, x=2)
45
46 def test_varargs1_kw(self):
47 self.assertRaises(TypeError, {}.has_key, x=2)
48
49 def test_varargs2_kw(self):
50 self.assertRaises(TypeError, {}.has_key, x=2, y=2)
51
52 def test_oldargs0_0(self):
53 {}.keys()
54
55 def test_oldargs0_1(self):
56 self.assertRaises(TypeError, {}.keys, 0)
57
58 def test_oldargs0_2(self):
59 self.assertRaises(TypeError, {}.keys, 0, 1)
60
61 def test_oldargs0_0_ext(self):
62 {}.keys(*())
63
64 def test_oldargs0_1_ext(self):
65 try:
66 {}.keys(*(0,))
67 except TypeError:
68 pass
69 else:
70 raise RuntimeError
71
72 def test_oldargs0_2_ext(self):
73 try:
74 {}.keys(*(1, 2))
75 except TypeError:
76 pass
77 else:
78 raise RuntimeError
79
80 def test_oldargs0_0_kw(self):
81 try:
82 {}.keys(x=2)
83 except TypeError:
84 pass
85 else:
86 raise RuntimeError
87
88 def test_oldargs0_1_kw(self):
89 self.assertRaises(TypeError, {}.keys, x=2)
90
91 def test_oldargs0_2_kw(self):
92 self.assertRaises(TypeError, {}.keys, x=2, y=2)
93
94 def test_oldargs1_0(self):
Raymond Hettinger31017ae2004-03-04 08:25:44 +000095 self.assertRaises(TypeError, [].count)
Jeremy Hyltonbea39472001-05-29 16:26:20 +000096
97 def test_oldargs1_1(self):
Raymond Hettinger31017ae2004-03-04 08:25:44 +000098 [].count(1)
Jeremy Hyltonbea39472001-05-29 16:26:20 +000099
100 def test_oldargs1_2(self):
Raymond Hettinger31017ae2004-03-04 08:25:44 +0000101 self.assertRaises(TypeError, [].count, 1, 2)
Jeremy Hyltonbea39472001-05-29 16:26:20 +0000102
103 def test_oldargs1_0_ext(self):
104 try:
Raymond Hettinger31017ae2004-03-04 08:25:44 +0000105 [].count(*())
Jeremy Hyltonbea39472001-05-29 16:26:20 +0000106 except TypeError:
107 pass
108 else:
109 raise RuntimeError
110
111 def test_oldargs1_1_ext(self):
Raymond Hettinger31017ae2004-03-04 08:25:44 +0000112 [].count(*(1,))
Jeremy Hyltonbea39472001-05-29 16:26:20 +0000113
114 def test_oldargs1_2_ext(self):
115 try:
Raymond Hettinger31017ae2004-03-04 08:25:44 +0000116 [].count(*(1, 2))
Jeremy Hyltonbea39472001-05-29 16:26:20 +0000117 except TypeError:
118 pass
119 else:
120 raise RuntimeError
121
122 def test_oldargs1_0_kw(self):
Raymond Hettinger31017ae2004-03-04 08:25:44 +0000123 self.assertRaises(TypeError, [].count, x=2)
Jeremy Hyltonbea39472001-05-29 16:26:20 +0000124
125 def test_oldargs1_1_kw(self):
Raymond Hettinger31017ae2004-03-04 08:25:44 +0000126 self.assertRaises(TypeError, [].count, {}, x=2)
Jeremy Hyltonbea39472001-05-29 16:26:20 +0000127
128 def test_oldargs1_2_kw(self):
Raymond Hettinger31017ae2004-03-04 08:25:44 +0000129 self.assertRaises(TypeError, [].count, x=2, y=2)
Jeremy Hyltonbea39472001-05-29 16:26:20 +0000130
Fred Drake2e2be372001-09-20 21:33:42 +0000131
132def test_main():
Walter Dörwald21d3a322003-05-01 17:45:56 +0000133 test_support.run_unittest(CFunctionCalls)
Fred Drake2e2be372001-09-20 21:33:42 +0000134
135
136if __name__ == "__main__":
137 test_main()