Changeset 391 for python/trunk/Lib/test/test_urllib2net.py
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Lib/test/test_urllib2net.py
r2 r391 7 7 import socket 8 8 import urllib2 9 import os 9 10 import sys 10 import os 11 import mimetools11 12 TIMEOUT = 60 # seconds 12 13 13 14 … … 74 75 75 76 def test_close(self): 76 import socket, httplib, gc77 import httplib 77 78 78 79 # calling .close() on urllib2's response objects should close the … … 82 83 response = _urlopen_with_retry("http://www.python.org/") 83 84 abused_fileobject = response.fp 84 self.assert _(abused_fileobject.__class__ is socket._fileobject)85 self.assertTrue(abused_fileobject.__class__ is socket._fileobject) 85 86 httpresponse = abused_fileobject._sock 86 self.assert _(httpresponse.__class__ is httplib.HTTPResponse)87 self.assertTrue(httpresponse.__class__ is httplib.HTTPResponse) 87 88 fileobject = httpresponse.fp 88 self.assert _(fileobject.__class__ is socket._fileobject)89 90 self.assert _(not fileobject.closed)89 self.assertTrue(fileobject.__class__ is socket._fileobject) 90 91 self.assertTrue(not fileobject.closed) 91 92 response.close() 92 self.assert _(fileobject.closed)93 self.assertTrue(fileobject.closed) 93 94 94 95 class OtherNetworkTests(unittest.TestCase): … … 125 126 finally: 126 127 os.remove(TESTFN) 128 129 self.assertRaises(ValueError, urllib2.urlopen,'./relative_path/to/file') 127 130 128 131 # XXX Following test depends on machine configurations that are internal … … 154 157 ## self._test_urls(urls, self._extra_handlers()+[bauth, dauth]) 155 158 159 def test_urlwithfrag(self): 160 urlwith_frag = "http://docs.python.org/2/glossary.html#glossary" 161 with test_support.transient_internet(urlwith_frag): 162 req = urllib2.Request(urlwith_frag) 163 res = urllib2.urlopen(req) 164 self.assertEqual(res.geturl(), 165 "http://docs.python.org/2/glossary.html#glossary") 166 167 def test_fileno(self): 168 req = urllib2.Request("http://www.python.org") 169 opener = urllib2.build_opener() 170 res = opener.open(req) 171 try: 172 res.fileno() 173 except AttributeError: 174 self.fail("HTTPResponse object should return a valid fileno") 175 finally: 176 res.close() 177 178 def test_custom_headers(self): 179 url = "http://www.example.com" 180 with test_support.transient_internet(url): 181 opener = urllib2.build_opener() 182 request = urllib2.Request(url) 183 self.assertFalse(request.header_items()) 184 opener.open(request) 185 self.assertTrue(request.header_items()) 186 self.assertTrue(request.has_header('User-agent')) 187 request.add_header('User-Agent','Test-Agent') 188 opener.open(request) 189 self.assertEqual(request.get_header('User-agent'),'Test-Agent') 190 191 def test_sites_no_connection_close(self): 192 # Some sites do not send Connection: close header. 193 # Verify that those work properly. (#issue12576) 194 195 URL = 'http://www.imdb.com' # No Connection:close 196 with test_support.transient_internet(URL): 197 req = urllib2.urlopen(URL) 198 res = req.read() 199 self.assertTrue(res) 200 156 201 def _test_urls(self, urls, handlers, retry=True): 157 import socket158 202 import time 159 203 import logging … … 169 213 else: 170 214 req = expected_err = None 171 debug(url) 172 try: 173 f = urlopen(url, req) 174 except EnvironmentError, err: 175 debug(err) 176 if expected_err: 177 msg = ("Didn't get expected error(s) %s for %s %s, got %s: %s" % 178 (expected_err, url, req, type(err), err)) 179 self.assert_(isinstance(err, expected_err), msg) 180 else: 181 with test_support.transient_internet(): 182 buf = f.read() 183 f.close() 184 debug("read %d bytes" % len(buf)) 215 with test_support.transient_internet(url): 216 debug(url) 217 try: 218 f = urlopen(url, req, TIMEOUT) 219 except EnvironmentError as err: 220 debug(err) 221 if expected_err: 222 msg = ("Didn't get expected error(s) %s for %s %s, got %s: %s" % 223 (expected_err, url, req, type(err), err)) 224 self.assertIsInstance(err, expected_err, msg) 225 except urllib2.URLError as err: 226 if isinstance(err[0], socket.timeout): 227 print >>sys.stderr, "<timeout: %s>" % url 228 continue 229 else: 230 raise 231 else: 232 try: 233 with test_support.transient_internet(url): 234 buf = f.read() 235 debug("read %d bytes" % len(buf)) 236 except socket.timeout: 237 print >>sys.stderr, "<timeout: %s>" % url 238 f.close() 185 239 debug("******** next url coming up...") 186 240 time.sleep(0.1) … … 190 244 191 245 cfh = urllib2.CacheFTPHandler() 246 self.addCleanup(cfh.clear_cache) 192 247 cfh.setTimeout(1) 193 248 handlers.append(cfh) … … 199 254 def test_http_basic(self): 200 255 self.assertTrue(socket.getdefaulttimeout() is None) 201 u = _urlopen_with_retry("http://www.python.org") 202 self.assertTrue(u.fp._sock.fp._sock.gettimeout() is None) 256 url = "http://www.python.org" 257 with test_support.transient_internet(url, timeout=None): 258 u = _urlopen_with_retry(url) 259 self.assertTrue(u.fp._sock.fp._sock.gettimeout() is None) 203 260 204 261 def test_http_default_timeout(self): 205 262 self.assertTrue(socket.getdefaulttimeout() is None) 206 socket.setdefaulttimeout(60) 207 try: 208 u = _urlopen_with_retry("http://www.python.org") 209 finally: 210 socket.setdefaulttimeout(None) 211 self.assertEqual(u.fp._sock.fp._sock.gettimeout(), 60) 263 url = "http://www.python.org" 264 with test_support.transient_internet(url): 265 socket.setdefaulttimeout(60) 266 try: 267 u = _urlopen_with_retry(url) 268 finally: 269 socket.setdefaulttimeout(None) 270 self.assertEqual(u.fp._sock.fp._sock.gettimeout(), 60) 212 271 213 272 def test_http_no_timeout(self): 214 273 self.assertTrue(socket.getdefaulttimeout() is None) 215 socket.setdefaulttimeout(60) 216 try: 217 u = _urlopen_with_retry("http://www.python.org", timeout=None) 218 finally: 219 socket.setdefaulttimeout(None) 220 self.assertTrue(u.fp._sock.fp._sock.gettimeout() is None) 274 url = "http://www.python.org" 275 with test_support.transient_internet(url): 276 socket.setdefaulttimeout(60) 277 try: 278 u = _urlopen_with_retry(url, timeout=None) 279 finally: 280 socket.setdefaulttimeout(None) 281 self.assertTrue(u.fp._sock.fp._sock.gettimeout() is None) 221 282 222 283 def test_http_timeout(self): 223 u = _urlopen_with_retry("http://www.python.org", timeout=120) 224 self.assertEqual(u.fp._sock.fp._sock.gettimeout(), 120) 225 226 FTP_HOST = "ftp://ftp.mirror.nl/pub/mirror/gnu/" 284 url = "http://www.python.org" 285 with test_support.transient_internet(url): 286 u = _urlopen_with_retry(url, timeout=120) 287 self.assertEqual(u.fp._sock.fp._sock.gettimeout(), 120) 288 289 FTP_HOST = "ftp://ftp.mirror.nl/pub/gnu/" 227 290 228 291 def test_ftp_basic(self): 229 292 self.assertTrue(socket.getdefaulttimeout() is None) 230 u = _urlopen_with_retry(self.FTP_HOST) 231 self.assertTrue(u.fp.fp._sock.gettimeout() is None) 293 with test_support.transient_internet(self.FTP_HOST, timeout=None): 294 u = _urlopen_with_retry(self.FTP_HOST) 295 self.assertTrue(u.fp.fp._sock.gettimeout() is None) 232 296 233 297 def test_ftp_default_timeout(self): 234 298 self.assertTrue(socket.getdefaulttimeout() is None) 235 socket.setdefaulttimeout(60) 236 try: 237 u = _urlopen_with_retry(self.FTP_HOST) 238 finally: 239 socket.setdefaulttimeout(None) 240 self.assertEqual(u.fp.fp._sock.gettimeout(), 60) 299 with test_support.transient_internet(self.FTP_HOST): 300 socket.setdefaulttimeout(60) 301 try: 302 u = _urlopen_with_retry(self.FTP_HOST) 303 finally: 304 socket.setdefaulttimeout(None) 305 self.assertEqual(u.fp.fp._sock.gettimeout(), 60) 241 306 242 307 def test_ftp_no_timeout(self): 243 308 self.assertTrue(socket.getdefaulttimeout() is None) 244 socket.setdefaulttimeout(60) 245 try: 246 u = _urlopen_with_retry(self.FTP_HOST, timeout=None) 247 finally: 248 socket.setdefaulttimeout(None) 249 self.assertTrue(u.fp.fp._sock.gettimeout() is None) 309 with test_support.transient_internet(self.FTP_HOST): 310 socket.setdefaulttimeout(60) 311 try: 312 u = _urlopen_with_retry(self.FTP_HOST, timeout=None) 313 finally: 314 socket.setdefaulttimeout(None) 315 self.assertTrue(u.fp.fp._sock.gettimeout() is None) 250 316 251 317 def test_ftp_timeout(self): 252 u = _urlopen_with_retry(self.FTP_HOST, timeout=60) 253 self.assertEqual(u.fp.fp._sock.gettimeout(), 60) 318 with test_support.transient_internet(self.FTP_HOST): 319 u = _urlopen_with_retry(self.FTP_HOST, timeout=60) 320 self.assertEqual(u.fp.fp._sock.gettimeout(), 60) 254 321 255 322
Note:
See TracChangeset
for help on using the changeset viewer.