Lines Matching +full:basic +full:- +full:ftp
94 interface. However, .headers pre-dates those methods, and so real code
98 reason: code that previously saw all (urllib2 user)-provided headers in
104 headers={"Spam-eggs": "blah"}
105 ).headers["Spam-eggs"], "blah")
107 headers={"spam-EggS": "blah"}
108 ).headers["Spam-eggs"], "blah")
113 .capitalize()-case. This should be preserved for
114 backwards-compatibility. (In the HTTP case, normalization to
115 .title()-case is done by urllib2 before sending headers to
118 Note that e.g. r.has_header("spam-EggS") is currently False, and
119 r.get_header("spam-EggS") returns None, but that could be changed in
126 req = Request(url, headers={"Spam-eggs": "blah"})
127 self.assertTrue(req.has_header("Spam-eggs"))
128 self.assertEqual(req.header_items(), [('Spam-eggs', 'blah')])
130 req.add_header("Foo-Bar", "baz")
132 [('Foo-bar', 'baz'), ('Spam-eggs', 'blah')])
133 self.assertFalse(req.has_header("Not-there"))
134 self.assertIsNone(req.get_header("Not-there"))
135 self.assertEqual(req.get_header("Not-there", "default"), "default")
137 req.remove_header("Spam-eggs")
138 self.assertFalse(req.has_header("Spam-eggs"))
140 req.add_unredirected_header("Unredirected-spam", "Eggs")
141 self.assertTrue(req.has_header("Unredirected-spam"))
143 req.remove_header("Unredirected-spam")
144 self.assertFalse(req.has_header("Unredirected-spam"))
517 # Useful for testing the Proxy-Authorization request by verifying the
569 # test work-around for three methods that accidentally follow the
573 # These used to call the accidentally-named methods, causing a
590 # handler returning non-None means no more handlers will be called
603 # non-None. Handlers without .http_open() never get any methods called
707 path.encode("utf-8")
749 ("ftp://localhost/foo/bar/baz.html",
752 ("ftp://parrot@localhost/foo/bar/baz.html",
755 ("ftp://%25parrot@localhost/foo/bar/baz.html",
758 ("ftp://%2542parrot@localhost/foo/bar/baz.html",
761 ("ftp://localhost:80/foo/bar/",
764 ("ftp://localhost/baz.gif;type=a",
771 # ftp authentication not yet implemented by FTPHandler
780 self.assertEqual(headers.get("Content-type"), mimetype)
781 self.assertEqual(int(headers["Content-length"]), len(data))
823 self.assertEqual(headers["Content-type"], "text/plain")
824 self.assertEqual(headers["Content-length"], "13")
825 self.assertEqual(headers["Last-modified"], modified)
831 "file://not-a-local-host.com//dir/file.txt",
851 # XXXX why does // mean ftp (and /// mean not ftp!), and where
857 # file://ftp.example.com/blah.txt (an ftp URL)
858 for url, ftp in [
859 ("file://ftp.example.com//foo.txt", False),
860 ("file://ftp.example.com///foo.txt", False),
861 ("file://ftp.example.com/foo.txt", False),
869 self.assertFalse(ftp)
872 self.assertEqual(req.type, "ftp")
873 self.assertEqual(req.type == "ftp", ftp)
920 self.assertNotIn("Content-length", req.unredirected_hdrs)
921 self.assertNotIn("Content-type", req.unredirected_hdrs)
923 self.assertEqual(req.unredirected_hdrs["Content-length"], "0")
924 self.assertEqual(req.unredirected_hdrs["Content-type"],
925 "application/x-www-form-urlencoded")
931 req.add_unredirected_header("Content-length", "foo")
932 req.add_unredirected_header("Content-type", "bar")
936 self.assertEqual(req.unredirected_hdrs["Content-length"], "foo")
937 self.assertEqual(req.unredirected_hdrs["Content-type"], "bar")
942 # A regular file - chunked encoding is used unless Content Length is
956 te = newreq.get_header('Transfer-encoding')
958 self.assertFalse(newreq.has_header('Content-length'))
961 req = Request("http://example.com/", f, {"Content-Length": 30})
963 self.assertEqual(int(newreq.get_header('Content-length')), 30)
964 self.assertFalse(newreq.has_header("Transfer-encoding"))
967 # A file object - chunked encoding is used
978 self.assertEqual(newreq.get_header('Transfer-encoding'), 'chunked')
979 self.assertFalse(newreq.has_header('Content-length'))
981 headers = {"Content-Length": 30}
984 self.assertEqual(int(newreq.get_header('Content-length')), 30)
985 self.assertFalse(newreq.has_header("Transfer-encoding"))
993 # back to Transfer-encoding chunked.
998 cmd = [sys.executable, "-c", r"pass"]
999 for headers in {}, {"Content-Length": 30}:
1004 self.assertEqual(newreq.get_header('Content-length'), None)
1005 self.assertEqual(newreq.get_header('Transfer-encoding'),
1008 self.assertEqual(int(newreq.get_header('Content-length')),
1013 # length up front. Fall back to Transfer-encoding chunked.
1021 for headers in {}, {"Content-Length": 11}:
1025 self.assertEqual(newreq.get_header('Content-length'), None)
1026 self.assertEqual(newreq.get_header('Transfer-encoding'),
1029 self.assertEqual(int(newreq.get_header('Content-length')), 11)
1032 # Zero-length iterable body should be treated like any other iterable
1036 self.assertEqual(req.get_header("Transfer-encoding"), "chunked")
1037 self.assertFalse(req.has_header("Content-length"))
1040 # array.array Iterable - Content Length is calculated
1047 for headers in {}, {"Content-Length": 16}:
1050 self.assertEqual(int(newreq.get_header('Content-length')),16)
1191 req.add_header("Content-Length", str(len(data)))
1209 self.assertNotIn("content-length", headers)
1210 self.assertNotIn("content-type", headers)
1225 # redirections with the sub-requests caused by the redirections.
1239 # detect endless non-repeating chain of redirects
1253 valid_schemes = ['http','https','ftp']
1340 b'Content-Length: 3\r\n'
1348 (b'/p\xC3\xA5-dansk/', b'/p%C3%A5-dansk/'),
1351 (b'/?p\xC3\xA5-dansk', b'/?p%C3%A5-dansk'),
1432 req.add_header("Proxy-Authorization", "FooBar")
1433 req.add_header("User-Agent", "Grail")
1437 # Verify Proxy-Authorization gets tunneled to request.
1438 # httpsconn req_headers do not have the Proxy-Authorization header but
1440 self.assertNotIn(("Proxy-Authorization", "FooBar"),
1442 self.assertIn(("User-Agent", "Grail"),
1446 self.assertEqual(req.get_header("Proxy-authorization"), "FooBar")
1499 basic = f'Basic realm="{realm}"'
1500 basic2 = f'Basic realm="{realm2}"'
1503 f'qop="auth, auth-int", '
1508 f'Basic realm="{realm}"',
1509 f"Basic realm='{realm}'",
1512 f'Basic realm="{realm}", charset="UTF-8"',
1515 f'{basic}, {basic2}',
1516 f'{basic}, {other_no_realm}',
1517 f'{other_no_realm}, {basic}',
1518 f'{basic}, {digest}',
1519 f'{digest}, {basic}',
1521 headers = [f'WWW-Authenticate: {realm_str}']
1525 with warnings_helper.check_warnings(("Basic Auth Realm was unquoted",
1527 headers = [f'WWW-Authenticate: Basic realm={realm}']
1531 # Use the first Basic realm.
1533 [basic, basic2],
1534 [basic, digest],
1535 [digest, basic],
1537 headers = [f'WWW-Authenticate: {challenge}'
1549 407, 'Proxy-Authenticate: Basic realm="%s"\r\n\r\n' % realm)
1552 self._test_basic_auth(opener, auth_handler, "Proxy-authorization",
1583 self.parent.record("basic")
1593 401, 'WWW-Authenticate: Basic realm="%s"\r\n\r\n' % realm)
1598 # check basic auth isn't blocked by digest handler failing
1604 # check digest was tried before basic (twice, because
1606 self.assertEqual(opener.recorded, ["digest", "basic"]*2)
1613 401, 'WWW-Authenticate: Kerberos\r\n\r\n')
1623 401, 'WWW-Authenticate: NTLM\r\n\r\n')
1651 auth_hdr_value = ('Basic ' +
1710 401, 'WWW-Authenticate: Basic realm="%s"\r\n\r\n' % None)
1736 ("Transfer-Encoding: chunked", b"4\r\ndata\r\n0\r\n\r\n"),
1737 ("Content-Length: 4", b"data"),
1817 hdrs = 'Content-Length: 42'
1822 self.assertEqual(err.headers, 'Content-Length: 42')
1858 ('ftp://joe:password@proxy.example.com/rubbish:3128',
1859 ('ftp', 'joe', 'password', 'proxy.example.com')),
1876 self.assertRaises(ValueError, _parse_proxy, 'file:/ftp.example.com'),
1896 headers={"X-Test": "test"})
1917 # if we change data we need to remove content-length header
1920 self.assertNotIn("Content-length", self.get.unredirected_hdrs)
1921 self.get.add_unredirected_header("Content-length", 42)
1922 self.assertEqual(42, self.get.unredirected_hdrs["Content-length"])
1924 self.assertNotIn("Content-length", self.get.unredirected_hdrs)
1928 self.assertNotIn("Content-length", self.get.unredirected_hdrs)
1930 self.get.add_unredirected_header("Content-length", 3)
1931 self.assertEqual(3, self.get.unredirected_hdrs["Content-length"])
1933 self.assertNotIn("Content-length", self.get.unredirected_hdrs)