@@ -1719,6 +1719,15 @@ def test_empty_iterable(self):
17191719 p .close ()
17201720 p .join ()
17211721
1722+ def test_context (self ):
1723+ if self .TYPE == 'processes' :
1724+ L = list (range (10 ))
1725+ expected = [sqr (i ) for i in L ]
1726+ with multiprocessing .Pool (2 ) as p :
1727+ r = p .map_async (sqr , L )
1728+ self .assertEqual (r .get (), expected )
1729+ self .assertRaises (AssertionError , p .map_async , sqr , L )
1730+
17221731def raising ():
17231732 raise KeyError ("key" )
17241733
@@ -2266,6 +2275,22 @@ def test_missing_fd_transfer(self):
22662275 self .assertRaises (RuntimeError , reduction .recv_handle , conn )
22672276 p .join ()
22682277
2278+ def test_context (self ):
2279+ a , b = self .Pipe ()
2280+
2281+ with a , b :
2282+ a .send (1729 )
2283+ self .assertEqual (b .recv (), 1729 )
2284+ if self .TYPE == 'processes' :
2285+ self .assertFalse (a .closed )
2286+ self .assertFalse (b .closed )
2287+
2288+ if self .TYPE == 'processes' :
2289+ self .assertTrue (a .closed )
2290+ self .assertTrue (b .closed )
2291+ self .assertRaises (IOError , a .recv )
2292+ self .assertRaises (IOError , b .recv )
2293+
22692294class _TestListener (BaseTestCase ):
22702295
22712296 ALLOWED_TYPES = ('processes' ,)
@@ -2277,6 +2302,16 @@ def test_multiple_bind(self):
22772302 self .assertRaises (OSError , self .connection .Listener ,
22782303 l .address , family )
22792304
2305+ def test_context (self ):
2306+ with self .connection .Listener () as l :
2307+ with self .connection .Client (l .address ) as c :
2308+ with l .accept () as d :
2309+ c .send (1729 )
2310+ self .assertEqual (d .recv (), 1729 )
2311+
2312+ if self .TYPE == 'processes' :
2313+ self .assertRaises (IOError , l .accept )
2314+
22802315class _TestListenerClient (BaseTestCase ):
22812316
22822317 ALLOWED_TYPES = ('processes' , 'threads' )
0 commit comments