@@ -154,22 +154,24 @@ def test_file(self):
154154
155155 def test_urlwithfrag (self ):
156156 urlwith_frag = "http://docs.python.org/glossary.html#glossary"
157- req = urllib .request .Request (urlwith_frag )
158- res = urllib .request .urlopen (req )
159- self .assertEqual (res .geturl (),
160- "http://docs.python.org/glossary.html" )
157+ with support .transient_internet (urlwith_frag ):
158+ req = urllib .request .Request (urlwith_frag )
159+ res = urllib .request .urlopen (req )
160+ self .assertEqual (res .geturl (),
161+ "http://docs.python.org/glossary.html" )
161162
162163 def test_custom_headers (self ):
163164 url = "http://www.example.com"
164- opener = urllib .request .build_opener ()
165- request = urllib .request .Request (url )
166- self .assertFalse (request .header_items ())
167- opener .open (request )
168- self .assertTrue (request .header_items ())
169- self .assertTrue (request .has_header ('User-agent' ))
170- request .add_header ('User-Agent' ,'Test-Agent' )
171- opener .open (request )
172- self .assertEqual (request .get_header ('User-agent' ),'Test-Agent' )
165+ with support .transient_internet (url ):
166+ opener = urllib .request .build_opener ()
167+ request = urllib .request .Request (url )
168+ self .assertFalse (request .header_items ())
169+ opener .open (request )
170+ self .assertTrue (request .header_items ())
171+ self .assertTrue (request .has_header ('User-agent' ))
172+ request .add_header ('User-Agent' ,'Test-Agent' )
173+ opener .open (request )
174+ self .assertEqual (request .get_header ('User-agent' ),'Test-Agent' )
173175
174176 def _test_urls (self , urls , handlers , retry = True ):
175177 import socket
@@ -186,31 +188,32 @@ def _test_urls(self, urls, handlers, retry=True):
186188 url , req , expected_err = url
187189 else :
188190 req = expected_err = None
189- debug (url )
190- try :
191- f = urlopen (url , req , TIMEOUT )
192- except EnvironmentError as err :
193- debug (err )
194- if expected_err :
195- msg = ("Didn't get expected error(s) %s for %s %s, got %s: %s" %
196- (expected_err , url , req , type (err ), err ))
197- self .assertTrue (isinstance (err , expected_err ), msg )
198- except urllib .error .URLError as err :
199- if isinstance (err [0 ], socket .timeout ):
200- print ("<timeout: %s>" % url , file = sys .stderr )
201- continue
202- else :
203- raise
204- else :
191+ with support .transient_internet (url ):
192+ debug (url )
205193 try :
206- with support .time_out , \
207- support .socket_peer_reset , \
208- support .ioerror_peer_reset :
209- buf = f .read ()
210- debug ("read %d bytes" % len (buf ))
211- except socket .timeout :
212- print ("<timeout: %s>" % url , file = sys .stderr )
213- f .close ()
194+ f = urlopen (url , req , TIMEOUT )
195+ except EnvironmentError as err :
196+ debug (err )
197+ if expected_err :
198+ msg = ("Didn't get expected error(s) %s for %s %s, got %s: %s" %
199+ (expected_err , url , req , type (err ), err ))
200+ self .assertTrue (isinstance (err , expected_err ), msg )
201+ except urllib .error .URLError as err :
202+ if isinstance (err [0 ], socket .timeout ):
203+ print ("<timeout: %s>" % url , file = sys .stderr )
204+ continue
205+ else :
206+ raise
207+ else :
208+ try :
209+ with support .time_out , \
210+ support .socket_peer_reset , \
211+ support .ioerror_peer_reset :
212+ buf = f .read ()
213+ debug ("read %d bytes" % len (buf ))
214+ except socket .timeout :
215+ print ("<timeout: %s>" % url , file = sys .stderr )
216+ f .close ()
214217 debug ("******** next url coming up..." )
215218 time .sleep (0.1 )
216219
@@ -227,59 +230,71 @@ def _extra_handlers(self):
227230class TimeoutTest (unittest .TestCase ):
228231 def test_http_basic (self ):
229232 self .assertTrue (socket .getdefaulttimeout () is None )
230- u = _urlopen_with_retry ("http://www.python.org" )
231- self .assertTrue (u .fp .raw ._sock .gettimeout () is None )
233+ url = "http://www.python.org"
234+ with support .transient_internet (url , timeout = None ):
235+ u = _urlopen_with_retry (url )
236+ self .assertTrue (u .fp .raw ._sock .gettimeout () is None )
232237
233238 def test_http_default_timeout (self ):
234239 self .assertTrue (socket .getdefaulttimeout () is None )
235- socket .setdefaulttimeout (60 )
236- try :
237- u = _urlopen_with_retry ("http://www.python.org" )
238- finally :
239- socket .setdefaulttimeout (None )
240- self .assertEqual (u .fp .raw ._sock .gettimeout (), 60 )
240+ url = "http://www.python.org"
241+ with support .transient_internet (url ):
242+ socket .setdefaulttimeout (60 )
243+ try :
244+ u = _urlopen_with_retry (url )
245+ finally :
246+ socket .setdefaulttimeout (None )
247+ self .assertEqual (u .fp .raw ._sock .gettimeout (), 60 )
241248
242249 def test_http_no_timeout (self ):
243250 self .assertTrue (socket .getdefaulttimeout () is None )
244- socket .setdefaulttimeout (60 )
245- try :
246- u = _urlopen_with_retry ("http://www.python.org" , timeout = None )
247- finally :
248- socket .setdefaulttimeout (None )
249- self .assertTrue (u .fp .raw ._sock .gettimeout () is None )
251+ url = "http://www.python.org"
252+ with support .transient_internet (url ):
253+ socket .setdefaulttimeout (60 )
254+ try :
255+ u = _urlopen_with_retry (url , timeout = None )
256+ finally :
257+ socket .setdefaulttimeout (None )
258+ self .assertTrue (u .fp .raw ._sock .gettimeout () is None )
250259
251260 def test_http_timeout (self ):
252- u = _urlopen_with_retry ("http://www.python.org" , timeout = 120 )
253- self .assertEqual (u .fp .raw ._sock .gettimeout (), 120 )
261+ url = "http://www.python.org"
262+ with support .transient_internet (url ):
263+ u = _urlopen_with_retry (url , timeout = 120 )
264+ self .assertEqual (u .fp .raw ._sock .gettimeout (), 120 )
254265
255266 FTP_HOST = "ftp://ftp.mirror.nl/pub/mirror/gnu/"
256267
257268 def test_ftp_basic (self ):
258269 self .assertTrue (socket .getdefaulttimeout () is None )
259- u = _urlopen_with_retry (self .FTP_HOST )
260- self .assertTrue (u .fp .fp .raw ._sock .gettimeout () is None )
270+ with support .transient_internet (self .FTP_HOST , timeout = None ):
271+ u = _urlopen_with_retry (self .FTP_HOST )
272+ self .assertTrue (u .fp .fp .raw ._sock .gettimeout () is None )
261273
262274 def test_ftp_default_timeout (self ):
263275 self .assertTrue (socket .getdefaulttimeout () is None )
264- socket .setdefaulttimeout (60 )
265- try :
266- u = _urlopen_with_retry (self .FTP_HOST )
267- finally :
268- socket .setdefaulttimeout (None )
269- self .assertEqual (u .fp .fp .raw ._sock .gettimeout (), 60 )
276+ with support .transient_internet (self .FTP_HOST ):
277+ socket .setdefaulttimeout (60 )
278+ try :
279+ u = _urlopen_with_retry (self .FTP_HOST )
280+ finally :
281+ socket .setdefaulttimeout (None )
282+ self .assertEqual (u .fp .fp .raw ._sock .gettimeout (), 60 )
270283
271284 def test_ftp_no_timeout (self ):
272285 self .assertTrue (socket .getdefaulttimeout () is None )
273- socket .setdefaulttimeout (60 )
274- try :
275- u = _urlopen_with_retry (self .FTP_HOST , timeout = None )
276- finally :
277- socket .setdefaulttimeout (None )
278- self .assertTrue (u .fp .fp .raw ._sock .gettimeout () is None )
286+ with support .transient_internet (self .FTP_HOST ):
287+ socket .setdefaulttimeout (60 )
288+ try :
289+ u = _urlopen_with_retry (self .FTP_HOST , timeout = None )
290+ finally :
291+ socket .setdefaulttimeout (None )
292+ self .assertTrue (u .fp .fp .raw ._sock .gettimeout () is None )
279293
280294 def test_ftp_timeout (self ):
281- u = _urlopen_with_retry (self .FTP_HOST , timeout = 60 )
282- self .assertEqual (u .fp .fp .raw ._sock .gettimeout (), 60 )
295+ with support .transient_internet (self .FTP_HOST ):
296+ u = _urlopen_with_retry (self .FTP_HOST , timeout = 60 )
297+ self .assertEqual (u .fp .fp .raw ._sock .gettimeout (), 60 )
283298
284299
285300def test_main ():
0 commit comments