@@ -155,22 +155,24 @@ def test_file(self):
155155
156156 def test_urlwithfrag (self ):
157157 urlwith_frag = "http://docs.python.org/glossary.html#glossary"
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" )
158+ with support .transient_internet (urlwith_frag ):
159+ req = urllib .request .Request (urlwith_frag )
160+ res = urllib .request .urlopen (req )
161+ self .assertEqual (res .geturl (),
162+ "http://docs.python.org/glossary.html" )
162163
163164 def test_custom_headers (self ):
164165 url = "http://www.example.com"
165- opener = urllib .request .build_opener ()
166- request = urllib .request .Request (url )
167- self .assertFalse (request .header_items ())
168- opener .open (request )
169- self .assertTrue (request .header_items ())
170- self .assertTrue (request .has_header ('User-agent' ))
171- request .add_header ('User-Agent' ,'Test-Agent' )
172- opener .open (request )
173- self .assertEqual (request .get_header ('User-agent' ),'Test-Agent' )
166+ with support .transient_internet (url ):
167+ opener = urllib .request .build_opener ()
168+ request = urllib .request .Request (url )
169+ self .assertFalse (request .header_items ())
170+ opener .open (request )
171+ self .assertTrue (request .header_items ())
172+ self .assertTrue (request .has_header ('User-agent' ))
173+ request .add_header ('User-Agent' ,'Test-Agent' )
174+ opener .open (request )
175+ self .assertEqual (request .get_header ('User-agent' ),'Test-Agent' )
174176
175177 def _test_urls (self , urls , handlers , retry = True ):
176178 import time
@@ -186,31 +188,33 @@ 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 .assertIsInstance (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+
192+ with support .transient_internet (url ):
193+ debug (url )
205194 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 ()
195+ f = urlopen (url , req , TIMEOUT )
196+ except EnvironmentError as err :
197+ debug (err )
198+ if expected_err :
199+ msg = ("Didn't get expected error(s) %s for %s %s, got %s: %s" %
200+ (expected_err , url , req , type (err ), err ))
201+ self .assertIsInstance (err , expected_err , msg )
202+ except urllib .error .URLError as err :
203+ if isinstance (err [0 ], socket .timeout ):
204+ print ("<timeout: %s>" % url , file = sys .stderr )
205+ continue
206+ else :
207+ raise
208+ else :
209+ try :
210+ with support .time_out , \
211+ support .socket_peer_reset , \
212+ support .ioerror_peer_reset :
213+ buf = f .read ()
214+ debug ("read %d bytes" % len (buf ))
215+ except socket .timeout :
216+ print ("<timeout: %s>" % url , file = sys .stderr )
217+ f .close ()
214218 debug ("******** next url coming up..." )
215219 time .sleep (0.1 )
216220
@@ -227,59 +231,71 @@ def _extra_handlers(self):
227231class TimeoutTest (unittest .TestCase ):
228232 def test_http_basic (self ):
229233 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 )
234+ url = "http://www.python.org"
235+ with support .transient_internet (url , timeout = None ):
236+ u = _urlopen_with_retry (url )
237+ self .assertTrue (u .fp .raw ._sock .gettimeout () is None )
232238
233239 def test_http_default_timeout (self ):
234240 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 )
241+ url = "http://www.python.org"
242+ with support .transient_internet (url ):
243+ socket .setdefaulttimeout (60 )
244+ try :
245+ u = _urlopen_with_retry (url )
246+ finally :
247+ socket .setdefaulttimeout (None )
248+ self .assertEqual (u .fp .raw ._sock .gettimeout (), 60 )
241249
242250 def test_http_no_timeout (self ):
243251 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 )
252+ url = "http://www.python.org"
253+ with support .transient_internet (url ):
254+ socket .setdefaulttimeout (60 )
255+ try :
256+ u = _urlopen_with_retry (url , timeout = None )
257+ finally :
258+ socket .setdefaulttimeout (None )
259+ self .assertTrue (u .fp .raw ._sock .gettimeout () is None )
250260
251261 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 )
262+ url = "http://www.python.org"
263+ with support .transient_internet (url ):
264+ u = _urlopen_with_retry (url , timeout = 120 )
265+ self .assertEqual (u .fp .raw ._sock .gettimeout (), 120 )
254266
255267 FTP_HOST = "ftp://ftp.mirror.nl/pub/gnu/"
256268
257269 def test_ftp_basic (self ):
258270 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 )
271+ with support .transient_internet (self .FTP_HOST , timeout = None ):
272+ u = _urlopen_with_retry (self .FTP_HOST )
273+ self .assertTrue (u .fp .fp .raw ._sock .gettimeout () is None )
261274
262275 def test_ftp_default_timeout (self ):
263276 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 )
277+ with support .transient_internet (self .FTP_HOST ):
278+ socket .setdefaulttimeout (60 )
279+ try :
280+ u = _urlopen_with_retry (self .FTP_HOST )
281+ finally :
282+ socket .setdefaulttimeout (None )
283+ self .assertEqual (u .fp .fp .raw ._sock .gettimeout (), 60 )
270284
271285 def test_ftp_no_timeout (self ):
272286 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 )
287+ with support .transient_internet (self .FTP_HOST ):
288+ socket .setdefaulttimeout (60 )
289+ try :
290+ u = _urlopen_with_retry (self .FTP_HOST , timeout = None )
291+ finally :
292+ socket .setdefaulttimeout (None )
293+ self .assertTrue (u .fp .fp .raw ._sock .gettimeout () is None )
279294
280295 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 )
296+ with support .transient_internet (self .FTP_HOST ):
297+ u = _urlopen_with_retry (self .FTP_HOST , timeout = 60 )
298+ self .assertEqual (u .fp .fp .raw ._sock .gettimeout (), 60 )
283299
284300
285301@unittest .skipUnless (ssl , "requires SSL support" )
0 commit comments