Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add testcase
  • Loading branch information
kctherookie committed Feb 15, 2019
commit 0ad43f1ea0768a5dfb9614c2be165333dcd4c205
36 changes: 34 additions & 2 deletions Lib/test/test_urllib2_localnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,27 @@ def do_GET(self):
# Request Unauthorized
self.do_AUTHHEAD()


def do_POST(self):
if not self.headers.get("Authorization", ""):
self.do_AUTHHEAD()
self.wfile.write(b"No Auth header received")
elif self.headers.get(
"Authorization", "") == "Basic " + self.ENCODED_AUTH:
encoding = self.headers.get("Transfer-Encoding")
if encoding is None:
length = int(self.headers.get("Content-Length"))
else:
assert encoding == "chunked"
length = int(self.rfile.readline(), 16)
request = self.rfile.read(length)
assert len(request) == length
if length > 0:
self.send_response(200, "OK")
self.end_headers()
self.wfile.write(request)
else:
self.send_response(400, "Empty request data")
self.end_headers()

# Proxy test infrastructure

Expand Down Expand Up @@ -314,6 +334,19 @@ def test_basic_auth_httperror(self):
urllib.request.install_opener(urllib.request.build_opener(ah))
self.assertRaises(urllib.error.HTTPError, urllib.request.urlopen, self.server_url)

def test_basic_auth_mmap_payload(self):
from mmap import mmap
data = "field=value".encode("ascii")
mem = mmap(-1, len(data))
mem[:] = data
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(realm=self.REALM, uri=self.server_url,
user=self.USER, passwd=self.PASSWD)
opener = urllib.request.build_opener(auth_handler)
urllib.request.install_opener(opener)
response = opener.open(self.server_url, mem)
self.assertEqual(response.read(), data)


class ProxyAuthTests(unittest.TestCase):
URL = "http://localhost"
Expand Down Expand Up @@ -658,7 +691,6 @@ def test_line_iteration(self):
(index, len(lines[index]), len(line)))
self.assertEqual(index + 1, len(lines))


threads_key = None

def setUpModule():
Expand Down