@@ -265,6 +265,9 @@ class MyDict(dict):
265265 else:
266266 return super().setdefault(k, v) + 10
267267
268+ class MyComplexDict(Dict, MyDict):
269+ pass
270+
268271def test_dict_keys() -> None:
269272 d: Dict[str, Optional[int]] = {'a': 1, 'b': 2}
270273 assert list(d.keys()) == ['a', 'b']
@@ -273,6 +276,10 @@ def test_dict_subclass_keys() -> None:
273276 d = MyDict({'a': 1, 'b': 2})
274277 assert list(d.keys()) == ['a', 'b']
275278
279+ def test_dict_subclass_complex_keys() -> None:
280+ d = MyComplexDict({'a': 1, 'b': 2})
281+ assert list(d.keys()) == ['a', 'b']
282+
276283def test_dict_values() -> None:
277284 d: Dict[str, Optional[int]] = {'a': 1, 'b': 2}
278285 assert list(d.values()) == [1, 2]
@@ -281,6 +288,10 @@ def test_dict_subclass_values() -> None:
281288 d = MyDict({'a': 1, 'b': 2})
282289 assert list(d.values()) == [1, 2]
283290
291+ def test_dict_subclass_complex_values() -> None:
292+ d = MyComplexDict({'a': 1, 'b': 2})
293+ assert list(d.values()) == [1, 2]
294+
284295def test_dict_items() -> None:
285296 d: Dict[str, Optional[int]] = {'a': 1, 'b': 2}
286297 assert list(d.items()) == [('a', 1), ('b', 2)]
@@ -289,6 +300,10 @@ def test_dict_subclass_items() -> None:
289300 d = MyDict({'a': 1, 'b': 2})
290301 assert list(d.items()) == [('a', 1), ('b', 2)]
291302
303+ def test_dict_subclass_complex_items() -> None:
304+ d = MyComplexDict({'a': 1, 'b': 2})
305+ assert list(d.items()) == [('a', 1), ('b', 2)]
306+
292307def test_dict_setdefault() -> None:
293308 d: Dict[str, Optional[int]] = {'a': 1, 'b': 2}
294309 assert d.setdefault('a', 2) == 1
0 commit comments