Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5be365f

Browse files
committed
#10116: wrap transient_internet() around net access in test_urllib2net.
1 parent ae2d832 commit 5be365f

1 file changed

Lines changed: 85 additions & 69 deletions

File tree

Lib/test/test_urllib2net.py

Lines changed: 85 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -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):
227231
class 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

Comments
 (0)