@@ -325,3 +325,36 @@ def test_value_covariant() -> None:
325
325
_bar4 : constantdict [str , str | int ] = constantdict .fromkeys (["a" , "b" ], 42 )
326
326
_bar5 : constantdict [str , None ] = constantdict .fromkeys (["a" , "b" ])
327
327
_bar6 : constantdict [str , str | None ] = constantdict .fromkeys (["a" , "b" ])
328
+
329
+
330
+ @pytest .mark .xfail (reason = "types do not differentiate from dict (see #35)" , strict = True )
331
+ def test_type_dict () -> None :
332
+ from collections .abc import Mapping as abc_Mapping
333
+ from collections .abc import MutableMapping as abc_MutableMapping
334
+ from typing import Mapping , MutableMapping
335
+ cd : constantdict [str , int ] = constantdict (a = 1 , b = 2 )
336
+
337
+ assert isinstance (cd , constantdict )
338
+ assert not isinstance (cd , dict )
339
+
340
+ assert isinstance (cd , Mapping )
341
+ assert not isinstance (cd , MutableMapping )
342
+
343
+ assert isinstance (cd , abc_Mapping )
344
+ assert not isinstance (cd , abc_MutableMapping )
345
+
346
+
347
+ @pytest .mark .xfail (
348
+ reason = "subclasses do not differentiate from dict (see #35)" , strict = True )
349
+ def test_subclass_dict () -> None :
350
+ from collections .abc import Mapping as abc_Mapping
351
+ from collections .abc import MutableMapping as abc_MutableMapping
352
+ from typing import Mapping , MutableMapping
353
+
354
+ assert not issubclass (constantdict , dict )
355
+
356
+ assert issubclass (constantdict , Mapping )
357
+ assert not issubclass (constantdict , MutableMapping )
358
+
359
+ assert issubclass (constantdict , abc_Mapping )
360
+ assert not issubclass (constantdict , abc_MutableMapping )
0 commit comments