@@ -2786,6 +2786,31 @@ def test_dict_proxy_nested(self):
27862786 self .assertIsInstance (outer [0 ], list ) # Not a ListProxy
27872787 self .assertEqual (outer [- 1 ][- 1 ]['feed' ], 3 )
27882788
2789+ def test_set_isinstance (self ):
2790+ m = multiprocessing .Manager ()
2791+ self .addCleanup (m .shutdown )
2792+ s = m .set ()
2793+ self .assertIsInstance (s , collections .abc .MutableSet )
2794+ self .assertNotIsInstance (s , collections .abc .MutableMapping )
2795+
2796+ mutable_set_methods = (
2797+ '__contains__' , '__iter__' , '__len__' ,
2798+ 'add' , 'discard' , 'remove' , 'pop' , 'clear' ,
2799+ 'update' , 'difference_update' , 'intersection_update' ,
2800+ 'symmetric_difference_update' ,
2801+ )
2802+ for name in mutable_set_methods :
2803+ with self .subTest (name = name ):
2804+ self .assertTrue (callable (getattr (s , name )))
2805+
2806+ mapping_only_methods = (
2807+ '__getitem__' , '__setitem__' , 'setdefault' ,
2808+ 'keys' , 'items' , 'values' , 'get' ,
2809+ )
2810+ for name in mapping_only_methods :
2811+ with self .subTest (name = name ):
2812+ self .assertFalse (hasattr (s , name ))
2813+
27892814 def test_nested_queue (self ):
27902815 a = self .list () # Test queue inside list
27912816 a .append (self .Queue ())
0 commit comments