Skip to content

Commit 7f05c9c

Browse files
committed
Add test for dict subclass in PySequence methods
1 parent fb3b0a6 commit 7f05c9c

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

graalpython/com.oracle.graal.python.test/src/tests/cpyext/test_abstract.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,15 @@ class DummyDequeLen(set):
280280
def __len__(self):
281281
return 42
282282

283+
284+
class DictSubclassWithSequenceMethods(dict):
285+
def __getitem__(self, key):
286+
return key
287+
288+
def __setitem__(self, key, value):
289+
pass
290+
291+
283292
def _default_bin_arith_args():
284293
return (
285294
(0, 0),
@@ -374,7 +383,8 @@ def _size_and_check_args():
374383
(DummyDeque(),),
375384
(DummyDeque([1,2,3]),),
376385
(DummyDequeLen(),),
377-
(DummyDequeLen([1,2,3]),),
386+
(DummyDequeLen([1,2,3]),),
387+
(DictSubclassWithSequenceMethods(),),
378388
)
379389

380390
class TestAbstractWithNative(object):
@@ -1164,6 +1174,7 @@ class TestAbstract(CPyExtTestCase):
11641174
({'a', 'b'}, 0),
11651175
(DummyListSubclass(), 1),
11661176
('hello', 1),
1177+
(DictSubclassWithSequenceMethods(), 1),
11671178
),
11681179
resultspec="O",
11691180
argspec='On',
@@ -1336,6 +1347,7 @@ def _reference_delslice(args):
13361347
([], 10, 1),
13371348
(['a', 'b', 'c'], 2, 'z'),
13381349
('hello', 2, 'z'),
1350+
(DictSubclassWithSequenceMethods(), 1, 1)
13391351
),
13401352
code=''' PyObject* wrap_PySequence_SetItem(PyObject* sequence, Py_ssize_t idx, PyObject* value) {
13411353
if (PySequence_SetItem(sequence, idx, value) < 0) {

0 commit comments

Comments
 (0)