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))
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()
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))
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_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)
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)
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)
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)