Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/test/test_urllib2net.py

    r2 r391  
    77import socket
    88import urllib2
     9import os
    910import sys
    10 import os
    11 import mimetools
     11
     12TIMEOUT = 60  # seconds
    1213
    1314
     
    7475
    7576    def test_close(self):
    76         import socket, httplib, gc
     77        import httplib
    7778
    7879        # calling .close() on urllib2's response objects should close the
     
    8283        response = _urlopen_with_retry("http://www.python.org/")
    8384        abused_fileobject = response.fp
    84         self.assert_(abused_fileobject.__class__ is socket._fileobject)
     85        self.assertTrue(abused_fileobject.__class__ is socket._fileobject)
    8586        httpresponse = abused_fileobject._sock
    86         self.assert_(httpresponse.__class__ is httplib.HTTPResponse)
     87        self.assertTrue(httpresponse.__class__ is httplib.HTTPResponse)
    8788        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)
    9192        response.close()
    92         self.assert_(fileobject.closed)
     93        self.assertTrue(fileobject.closed)
    9394
    9495class OtherNetworkTests(unittest.TestCase):
     
    125126        finally:
    126127            os.remove(TESTFN)
     128
     129        self.assertRaises(ValueError, urllib2.urlopen,'./relative_path/to/file')
    127130
    128131    # XXX Following test depends on machine configurations that are internal
     
    154157##             self._test_urls(urls, self._extra_handlers()+[bauth, dauth])
    155158
     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
    156201    def _test_urls(self, urls, handlers, retry=True):
    157         import socket
    158202        import time
    159203        import logging
     
    169213            else:
    170214                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()
    185239            debug("******** next url coming up...")
    186240            time.sleep(0.1)
     
    190244
    191245        cfh = urllib2.CacheFTPHandler()
     246        self.addCleanup(cfh.clear_cache)
    192247        cfh.setTimeout(1)
    193248        handlers.append(cfh)
     
    199254    def test_http_basic(self):
    200255        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)
    203260
    204261    def test_http_default_timeout(self):
    205262        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)
    212271
    213272    def test_http_no_timeout(self):
    214273        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)
    221282
    222283    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/"
    227290
    228291    def test_ftp_basic(self):
    229292        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)
    232296
    233297    def test_ftp_default_timeout(self):
    234298        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)
    241306
    242307    def test_ftp_no_timeout(self):
    243308        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)
    250316
    251317    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)
    254321
    255322
Note: See TracChangeset for help on using the changeset viewer.