def test_urlwithfrag(self):
     urlwith_frag = "http://docs.python.org/2/glossary.html#glossary"
     with support.transient_internet(urlwith_frag):
         req = urllib_request.Request(urlwith_frag)
         res = urllib_request.urlopen(req)
         self.assertEqual(res.geturl(),
                 "http://docs.python.org/2/glossary.html#glossary")
 def test_basic(self):
     handler = self.start_server()
     open_url = urllib_request.urlopen("http://localhost:%s" % handler.port)
     for attr in ("read", "close", "info", "geturl"):
         self.assertTrue(hasattr(open_url, attr), "object returned from "
                      "urlopen lacks the %s attribute" % attr)
     try:
         self.assertTrue(open_url.read(), "calling 'read' failed")
     finally:
         open_url.close()
    def test_sites_no_connection_close(self):
        # Some sites do not send Connection: close header.
        # Verify that those work properly. (#issue12576)

        URL = 'http://www.imdb.com' # mangles Connection:close

        with support.transient_internet(URL):
            try:
                with urllib_request.urlopen(URL) as res:
                    pass
            except ValueError as e:
                self.fail("urlopen failed for site not sending \
                           Connection:close")
            else:
                self.assertTrue(res)

            req = urllib_request.urlopen(URL)
            res = req.read()
            self.assertTrue(res)
 def test_line_iteration(self):
     lines = [b"We\n", b"got\n", b"here\n", b"verylong " * 8192 + b"\n"]
     expected_response = b"".join(lines)
     handler = self.start_server([(200, [], expected_response)])
     data = urllib_request.urlopen("http://localhost:%s" % handler.port)
     for index, line in enumerate(data):
         self.assertEqual(line, lines[index],
                          "Fetched line number %s doesn't match expected:\n"
                          "    Expected length was %s, got %s" %
                          (index, len(lines[index]), len(line)))
     self.assertEqual(index + 1, len(lines))
Exemplo n.º 5
0
 def test_basic(self):
     handler = self.start_server()
     open_url = urllib_request.urlopen("http://localhost:%s" % handler.port)
     for attr in ("read", "close", "info", "geturl"):
         self.assertTrue(
             hasattr(open_url, attr), "object returned from "
             "urlopen lacks the %s attribute" % attr)
     try:
         self.assertTrue(open_url.read(), "calling 'read' failed")
     finally:
         open_url.close()
 def test_info(self):
     handler = self.start_server()
     try:
         open_url = urllib_request.urlopen(
             "http://localhost:%s" % handler.port)
         info_obj = open_url.info()
         self.assertIsInstance(info_obj, email_message.Message,
                               "object returned by 'info' is not an "
                               "instance of email_message.Message")
         self.assertEqual(info_obj.get_content_subtype(), "plain")
     finally:
         self.server.stop()
Exemplo n.º 7
0
 def test_line_iteration(self):
     lines = [b"We\n", b"got\n", b"here\n", b"verylong " * 8192 + b"\n"]
     expected_response = b"".join(lines)
     handler = self.start_server([(200, [], expected_response)])
     data = urllib_request.urlopen("http://localhost:%s" % handler.port)
     for index, line in enumerate(data):
         self.assertEqual(
             line, lines[index],
             "Fetched line number %s doesn't match expected:\n"
             "    Expected length was %s, got %s" %
             (index, len(lines[index]), len(line)))
     self.assertEqual(index + 1, len(lines))
Exemplo n.º 8
0
 def urlopen(self, url, data=None, **kwargs):
     l = []
     self.skipTest('urlopen is waiting forever ...')
     f = urllib_request.urlopen(url, data, **kwargs)
     try:
         # Exercise various methods
         l.extend(f.readlines(200))
         l.append(f.readline())
         l.append(f.read(1024))
         l.append(f.read())
     finally:
         f.close()
     return b"".join(l)
Exemplo n.º 9
0
 def test_info(self):
     handler = self.start_server()
     try:
         open_url = urllib_request.urlopen("http://localhost:%s" %
                                           handler.port)
         info_obj = open_url.info()
         self.assertIsInstance(
             info_obj, email_message.Message,
             "object returned by 'info' is not an "
             "instance of email_message.Message")
         self.assertEqual(info_obj.get_content_subtype(), "plain")
     finally:
         self.server.stop()
 def urlopen(self, url, data=None, **kwargs):
     l = []
     self.skipTest('urlopen is waiting forever ...')
     f = urllib_request.urlopen(url, data, **kwargs)
     try:
         # Exercise various methods
         l.extend(f.readlines(200))
         l.append(f.readline())
         l.append(f.read(1024))
         l.append(f.read())
     finally:
         f.close()
     return b"".join(l)
 def test_sni(self):
     self.skipTest("test disabled - test server needed")
     # Checks that Server Name Indication works, if supported by the
     # OpenSSL linked to.
     # The ssl module itself doesn't have server-side support for SNI,
     # so we rely on a third-party test site.
     expect_sni = ssl.HAS_SNI
     with support.transient_internet("XXX"):
         u = urllib_request.urlopen("XXX")
         contents = u.readall()
         if expect_sni:
             self.assertIn(b"Great", contents)
             self.assertNotIn(b"Unfortunately", contents)
         else:
             self.assertNotIn(b"Great", contents)
             self.assertIn(b"Unfortunately", contents)
 def test_iteration(self):
     expected_response = b"pycon 2008..."
     handler = self.start_server([(200, [], expected_response)])
     data = urllib_request.urlopen("http://localhost:%s" % handler.port)
     for line in data:
         self.assertEqual(line, expected_response)
Exemplo n.º 13
0
 def test_iteration(self):
     expected_response = b"pycon 2008..."
     handler = self.start_server([(200, [], expected_response)])
     data = urllib_request.urlopen("http://localhost:%s" % handler.port)
     for line in data:
         self.assertEqual(line, expected_response)
Exemplo n.º 14
0
 def test_geturl(self):
     # Make sure same URL as opened is returned by geturl.
     handler = self.start_server()
     open_url = urllib_request.urlopen("http://localhost:%s" % handler.port)
     url = open_url.geturl()
     self.assertEqual(url, "http://localhost:%s" % handler.port)
Exemplo n.º 15
0
 def test_sending_headers(self):
     handler = self.start_server()
     req = urllib_request.Request("http://localhost:%s/" % handler.port,
                                  headers={"Range": "bytes=20-39"})
     urllib_request.urlopen(req)
     self.assertEqual(handler.headers_received["Range"], "bytes=20-39")
 def test_sending_headers(self):
     handler = self.start_server()
     req = urllib_request.Request("http://localhost:%s/" % handler.port,
                                  headers={"Range": "bytes=20-39"})
     urllib_request.urlopen(req)
     self.assertEqual(handler.headers_received["Range"], "bytes=20-39")
 def test_geturl(self):
     # Make sure same URL as opened is returned by geturl.
     handler = self.start_server()
     open_url = urllib_request.urlopen("http://localhost:%s" % handler.port)
     url = open_url.geturl()
     self.assertEqual(url, "http://localhost:%s" % handler.port)