Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f55e188

Browse filesBrowse files
authored
gh-116417: Move limited C API dict.c tests to _testlimitedcapi (#117006)
Split dict.c tests of _testcapi into two parts: limited C API tests in _testlimitedcapi and non-limited C API tests in _testcapi.
1 parent 7593574 commit f55e188
Copy full SHA for f55e188

File tree

Expand file treeCollapse file tree

8 files changed

+325
-304
lines changed
Filter options
Expand file treeCollapse file tree

8 files changed

+325
-304
lines changed

‎Lib/test/test_capi/test_dict.py

Copy file name to clipboardExpand all lines: Lib/test/test_capi/test_dict.py
+26-25Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from types import MappingProxyType
44
from test import support
55
import _testcapi
6+
import _testlimitedcapi
67

78

89
NULL = None
@@ -25,7 +26,7 @@ def gen():
2526
class CAPITest(unittest.TestCase):
2627

2728
def test_dict_check(self):
28-
check = _testcapi.dict_check
29+
check = _testlimitedcapi.dict_check
2930
self.assertTrue(check({1: 2}))
3031
self.assertTrue(check(OrderedDict({1: 2})))
3132
self.assertFalse(check(UserDict({1: 2})))
@@ -34,7 +35,7 @@ def test_dict_check(self):
3435
# CRASHES check(NULL)
3536

3637
def test_dict_checkexact(self):
37-
check = _testcapi.dict_checkexact
38+
check = _testlimitedcapi.dict_checkexact
3839
self.assertTrue(check({1: 2}))
3940
self.assertFalse(check(OrderedDict({1: 2})))
4041
self.assertFalse(check(UserDict({1: 2})))
@@ -43,15 +44,15 @@ def test_dict_checkexact(self):
4344
# CRASHES check(NULL)
4445

4546
def test_dict_new(self):
46-
dict_new = _testcapi.dict_new
47+
dict_new = _testlimitedcapi.dict_new
4748
dct = dict_new()
4849
self.assertEqual(dct, {})
4950
self.assertIs(type(dct), dict)
5051
dct2 = dict_new()
5152
self.assertIsNot(dct2, dct)
5253

5354
def test_dictproxy_new(self):
54-
dictproxy_new = _testcapi.dictproxy_new
55+
dictproxy_new = _testlimitedcapi.dictproxy_new
5556
for dct in {1: 2}, OrderedDict({1: 2}), UserDict({1: 2}):
5657
proxy = dictproxy_new(dct)
5758
self.assertIs(type(proxy), MappingProxyType)
@@ -67,7 +68,7 @@ def test_dictproxy_new(self):
6768
# CRASHES dictproxy_new(NULL)
6869

6970
def test_dict_copy(self):
70-
copy = _testcapi.dict_copy
71+
copy = _testlimitedcapi.dict_copy
7172
for dct in {1: 2}, OrderedDict({1: 2}):
7273
dct_copy = copy(dct)
7374
self.assertIs(type(dct_copy), dict)
@@ -79,7 +80,7 @@ def test_dict_copy(self):
7980
self.assertRaises(SystemError, copy, NULL)
8081

8182
def test_dict_clear(self):
82-
clear = _testcapi.dict_clear
83+
clear = _testlimitedcapi.dict_clear
8384
dct = {1: 2}
8485
clear(dct)
8586
self.assertEqual(dct, {})
@@ -98,7 +99,7 @@ def test_dict_clear(self):
9899
# CRASHES? clear(NULL)
99100

100101
def test_dict_size(self):
101-
size = _testcapi.dict_size
102+
size = _testlimitedcapi.dict_size
102103
self.assertEqual(size({1: 2}), 1)
103104
self.assertEqual(size(OrderedDict({1: 2})), 1)
104105

@@ -109,7 +110,7 @@ def test_dict_size(self):
109110
self.assertRaises(SystemError, size, NULL)
110111

111112
def test_dict_getitem(self):
112-
getitem = _testcapi.dict_getitem
113+
getitem = _testlimitedcapi.dict_getitem
113114
dct = {'a': 1, '\U0001f40d': 2}
114115
self.assertEqual(getitem(dct, 'a'), 1)
115116
self.assertIs(getitem(dct, 'b'), KeyError)
@@ -131,7 +132,7 @@ def test_dict_getitem(self):
131132
# CRASHES getitem(NULL, 'a')
132133

133134
def test_dict_getitemstring(self):
134-
getitemstring = _testcapi.dict_getitemstring
135+
getitemstring = _testlimitedcapi.dict_getitemstring
135136
dct = {'a': 1, '\U0001f40d': 2}
136137
self.assertEqual(getitemstring(dct, b'a'), 1)
137138
self.assertIs(getitemstring(dct, b'b'), KeyError)
@@ -188,7 +189,7 @@ def test_dict_getitemstringref(self):
188189
# CRASHES getitemstring(NULL, b'a')
189190

190191
def test_dict_getitemwitherror(self):
191-
getitem = _testcapi.dict_getitemwitherror
192+
getitem = _testlimitedcapi.dict_getitemwitherror
192193
dct = {'a': 1, '\U0001f40d': 2}
193194
self.assertEqual(getitem(dct, 'a'), 1)
194195
self.assertIs(getitem(dct, 'b'), KeyError)
@@ -206,7 +207,7 @@ def test_dict_getitemwitherror(self):
206207
# CRASHES getitem(NULL, 'a')
207208

208209
def test_dict_contains(self):
209-
contains = _testcapi.dict_contains
210+
contains = _testlimitedcapi.dict_contains
210211
dct = {'a': 1, '\U0001f40d': 2}
211212
self.assertTrue(contains(dct, 'a'))
212213
self.assertFalse(contains(dct, 'b'))
@@ -238,7 +239,7 @@ def test_dict_contains_string(self):
238239
# CRASHES contains(NULL, b'a')
239240

240241
def test_dict_setitem(self):
241-
setitem = _testcapi.dict_setitem
242+
setitem = _testlimitedcapi.dict_setitem
242243
dct = {}
243244
setitem(dct, 'a', 5)
244245
self.assertEqual(dct, {'a': 5})
@@ -258,7 +259,7 @@ def test_dict_setitem(self):
258259
# CRASHES setitem(NULL, 'a', 5)
259260

260261
def test_dict_setitemstring(self):
261-
setitemstring = _testcapi.dict_setitemstring
262+
setitemstring = _testlimitedcapi.dict_setitemstring
262263
dct = {}
263264
setitemstring(dct, b'a', 5)
264265
self.assertEqual(dct, {'a': 5})
@@ -277,7 +278,7 @@ def test_dict_setitemstring(self):
277278
# CRASHES setitemstring(NULL, b'a', 5)
278279

279280
def test_dict_delitem(self):
280-
delitem = _testcapi.dict_delitem
281+
delitem = _testlimitedcapi.dict_delitem
281282
dct = {'a': 1, 'c': 2, '\U0001f40d': 3}
282283
delitem(dct, 'a')
283284
self.assertEqual(dct, {'c': 2, '\U0001f40d': 3})
@@ -298,7 +299,7 @@ def test_dict_delitem(self):
298299
# CRASHES delitem(NULL, 'a')
299300

300301
def test_dict_delitemstring(self):
301-
delitemstring = _testcapi.dict_delitemstring
302+
delitemstring = _testlimitedcapi.dict_delitemstring
302303
dct = {'a': 1, 'c': 2, '\U0001f40d': 3}
303304
delitemstring(dct, b'a')
304305
self.assertEqual(dct, {'c': 2, '\U0001f40d': 3})
@@ -371,21 +372,21 @@ def items(self):
371372
return None
372373
dict_obj = {'foo': 1, 'bar': 2, 'spam': 3}
373374
for mapping in [dict_obj, DictSubclass(dict_obj), BadMapping(dict_obj)]:
374-
self.assertListEqual(_testcapi.dict_keys(mapping),
375+
self.assertListEqual(_testlimitedcapi.dict_keys(mapping),
375376
list(dict_obj.keys()))
376-
self.assertListEqual(_testcapi.dict_values(mapping),
377+
self.assertListEqual(_testlimitedcapi.dict_values(mapping),
377378
list(dict_obj.values()))
378-
self.assertListEqual(_testcapi.dict_items(mapping),
379+
self.assertListEqual(_testlimitedcapi.dict_items(mapping),
379380
list(dict_obj.items()))
380381

381382
def test_dict_keys_valuesitems_bad_arg(self):
382383
for mapping in UserDict(), [], object():
383-
self.assertRaises(SystemError, _testcapi.dict_keys, mapping)
384-
self.assertRaises(SystemError, _testcapi.dict_values, mapping)
385-
self.assertRaises(SystemError, _testcapi.dict_items, mapping)
384+
self.assertRaises(SystemError, _testlimitedcapi.dict_keys, mapping)
385+
self.assertRaises(SystemError, _testlimitedcapi.dict_values, mapping)
386+
self.assertRaises(SystemError, _testlimitedcapi.dict_items, mapping)
386387

387388
def test_dict_next(self):
388-
dict_next = _testcapi.dict_next
389+
dict_next = _testlimitedcapi.dict_next
389390
self.assertIsNone(dict_next({}, 0))
390391
dct = {'a': 1, 'b': 2, 'c': 3}
391392
pos = 0
@@ -402,7 +403,7 @@ def test_dict_next(self):
402403
# CRASHES dict_next(NULL, 0)
403404

404405
def test_dict_update(self):
405-
update = _testcapi.dict_update
406+
update = _testlimitedcapi.dict_update
406407
for cls1 in dict, DictSubclass:
407408
for cls2 in dict, DictSubclass, UserDict:
408409
dct = cls1({'a': 1, 'b': 2})
@@ -417,7 +418,7 @@ def test_dict_update(self):
417418
self.assertRaises(SystemError, update, NULL, {})
418419

419420
def test_dict_merge(self):
420-
merge = _testcapi.dict_merge
421+
merge = _testlimitedcapi.dict_merge
421422
for cls1 in dict, DictSubclass:
422423
for cls2 in dict, DictSubclass, UserDict:
423424
dct = cls1({'a': 1, 'b': 2})
@@ -435,7 +436,7 @@ def test_dict_merge(self):
435436
self.assertRaises(SystemError, merge, NULL, {}, 0)
436437

437438
def test_dict_mergefromseq2(self):
438-
mergefromseq2 = _testcapi.dict_mergefromseq2
439+
mergefromseq2 = _testlimitedcapi.dict_mergefromseq2
439440
for cls1 in dict, DictSubclass:
440441
for cls2 in list, iter:
441442
dct = cls1({'a': 1, 'b': 2})

‎Modules/Setup.stdlib.in

Copy file name to clipboardExpand all lines: Modules/Setup.stdlib.in
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@
163163
@MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c
164164
@MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c _testinternalcapi/test_lock.c _testinternalcapi/pytime.c _testinternalcapi/set.c _testinternalcapi/test_critical_sections.c
165165
@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c _testcapi/vectorcall.c _testcapi/heaptype.c _testcapi/abstract.c _testcapi/unicode.c _testcapi/dict.c _testcapi/set.c _testcapi/list.c _testcapi/tuple.c _testcapi/getargs.c _testcapi/datetime.c _testcapi/docstring.c _testcapi/mem.c _testcapi/watchers.c _testcapi/long.c _testcapi/float.c _testcapi/complex.c _testcapi/numbers.c _testcapi/structmember.c _testcapi/exceptions.c _testcapi/code.c _testcapi/buffer.c _testcapi/pyatomic.c _testcapi/file.c _testcapi/codec.c _testcapi/immortal.c _testcapi/gc.c _testcapi/hash.c _testcapi/time.c
166-
@MODULE__TESTLIMITEDCAPI_TRUE@_testlimitedcapi _testlimitedcapi.c _testlimitedcapi/abstract.c _testlimitedcapi/bytearray.c _testlimitedcapi/bytes.c _testlimitedcapi/float.c _testlimitedcapi/heaptype_relative.c _testlimitedcapi/list.c _testlimitedcapi/long.c _testlimitedcapi/pyos.c _testlimitedcapi/set.c _testlimitedcapi/sys.c _testlimitedcapi/unicode.c _testlimitedcapi/vectorcall_limited.c
166+
@MODULE__TESTLIMITEDCAPI_TRUE@_testlimitedcapi _testlimitedcapi.c _testlimitedcapi/abstract.c _testlimitedcapi/bytearray.c _testlimitedcapi/bytes.c _testlimitedcapi/dict.c _testlimitedcapi/float.c _testlimitedcapi/heaptype_relative.c _testlimitedcapi/list.c _testlimitedcapi/long.c _testlimitedcapi/pyos.c _testlimitedcapi/set.c _testlimitedcapi/sys.c _testlimitedcapi/unicode.c _testlimitedcapi/vectorcall_limited.c
167167
@MODULE__TESTCLINIC_TRUE@_testclinic _testclinic.c
168168
@MODULE__TESTCLINIC_LIMITED_TRUE@_testclinic_limited _testclinic_limited.c
169169

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.