@@ -755,50 +755,49 @@ def test_bind(self):
755
755
def test_set_reuse_addr (self ):
756
756
if HAS_UNIX_SOCKETS and self .family == socket .AF_UNIX :
757
757
self .skipTest ("Not applicable to AF_UNIX sockets." )
758
- sock = socket .socket (self .family )
759
- try :
760
- sock .setsockopt (socket .SOL_SOCKET , socket .SO_REUSEADDR , 1 )
761
- except OSError :
762
- unittest .skip ("SO_REUSEADDR not supported on this platform" )
763
- else :
764
- # if SO_REUSEADDR succeeded for sock we expect asyncore
765
- # to do the same
766
- s = asyncore .dispatcher (socket .socket (self .family ))
767
- self .assertFalse (s .socket .getsockopt (socket .SOL_SOCKET ,
768
- socket .SO_REUSEADDR ))
769
- s .socket .close ()
770
- s .create_socket (self .family )
771
- s .set_reuse_addr ()
772
- self .assertTrue (s .socket .getsockopt (socket .SOL_SOCKET ,
773
- socket .SO_REUSEADDR ))
774
- finally :
775
- sock .close ()
758
+
759
+ with socket .socket (self .family ) as sock :
760
+ try :
761
+ sock .setsockopt (socket .SOL_SOCKET , socket .SO_REUSEADDR , 1 )
762
+ except OSError :
763
+ unittest .skip ("SO_REUSEADDR not supported on this platform" )
764
+ else :
765
+ # if SO_REUSEADDR succeeded for sock we expect asyncore
766
+ # to do the same
767
+ s = asyncore .dispatcher (socket .socket (self .family ))
768
+ self .assertFalse (s .socket .getsockopt (socket .SOL_SOCKET ,
769
+ socket .SO_REUSEADDR ))
770
+ s .socket .close ()
771
+ s .create_socket (self .family )
772
+ s .set_reuse_addr ()
773
+ self .assertTrue (s .socket .getsockopt (socket .SOL_SOCKET ,
774
+ socket .SO_REUSEADDR ))
776
775
777
776
@unittest .skipUnless (threading , 'Threading required for this test.' )
778
777
@support .reap_threads
779
778
def test_quick_connect (self ):
780
779
# see: http://bugs.python.org/issue10340
781
- if self .family in (socket .AF_INET , getattr (socket , "AF_INET6" , object ())):
782
- server = BaseServer ( self .family , self . addr )
783
- t = threading . Thread ( target = lambda : asyncore . loop ( timeout = 0.1 ,
784
- count = 500 ) )
785
- t . start ()
786
- def cleanup ():
787
- t . join ( timeout = TIMEOUT )
788
- if t . is_alive () :
789
- self . fail ( "join() timed out" )
790
- self . addCleanup ( cleanup )
791
-
792
- s = socket . socket ( self . family , socket . SOCK_STREAM )
793
- s . settimeout ( .2 )
794
- s . setsockopt ( socket . SOL_SOCKET , socket . SO_LINGER ,
795
- struct . pack ( 'ii' , 1 , 0 ) )
796
- try :
797
- s . connect ( server . address )
798
- except OSError :
799
- pass
800
- finally :
801
- s . close ( )
780
+ if self .family not in (socket .AF_INET , getattr (socket , "AF_INET6" , object ())):
781
+ self .skipTest ( "test specific to AF_INET and AF_INET6" )
782
+
783
+ server = BaseServer ( self . family , self . addr )
784
+ t = threading . Thread ( target = lambda : asyncore . loop ( timeout = 0.1 ,
785
+ count = 500 ), name = "ident" )
786
+ t . start ( )
787
+ try :
788
+ with socket . socket ( self . family , socket . SOCK_STREAM ) as s :
789
+ s . settimeout ( .2 )
790
+ s . setsockopt ( socket . SOL_SOCKET , socket . SO_LINGER ,
791
+ struct . pack ( 'ii' , 1 , 0 ) )
792
+
793
+ try :
794
+ s . connect ( server . address )
795
+ except OSError :
796
+ pass
797
+ finally :
798
+ t . join ( timeout = TIMEOUT )
799
+ if t . is_alive () :
800
+ self . fail ( "join() timed out" )
802
801
803
802
class TestAPI_UseIPv4Sockets (BaseTestAPI ):
804
803
family = socket .AF_INET
0 commit comments