Skip to content

Commit 0d74efc

Browse files
bpo-46648: Rewrite test_urllib2.test_issue16464() with a local HTTP server (GH-31186)
Re-enable test_issue16464() of test_urllib2, move it to urllib2_localnet and use the local HTTP server rather than an external HTTP server. (cherry picked from commit 8e98175) Co-authored-by: Nikita Sobolev <[email protected]>
1 parent 0892a0e commit 0d74efc

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

Lib/test/test_urllib2.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,24 +1786,6 @@ class MyOtherHTTPHandler(urllib.request.HTTPHandler):
17861786
self.opener_has_handler(o, MyHTTPHandler)
17871787
self.opener_has_handler(o, MyOtherHTTPHandler)
17881788

1789-
@unittest.skipUnless(support.is_resource_enabled('network'),
1790-
'test requires network access')
1791-
# bpo-46648: test fails randomly with "http://www.example.com/" URL
1792-
@unittest.skipIf(True, "POST request to http://www.example.com/ fail randomly")
1793-
def test_issue16464(self):
1794-
with socket_helper.transient_internet("http://www.example.com/"):
1795-
opener = urllib.request.build_opener()
1796-
request = urllib.request.Request("http://www.example.com/")
1797-
self.assertEqual(None, request.data)
1798-
1799-
opener.open(request, "1".encode("us-ascii"))
1800-
self.assertEqual(b"1", request.data)
1801-
self.assertEqual("1", request.get_header("Content-length"))
1802-
1803-
opener.open(request, "1234567890".encode("us-ascii"))
1804-
self.assertEqual(b"1234567890", request.data)
1805-
self.assertEqual("10", request.get_header("Content-length"))
1806-
18071789
def test_HTTPError_interface(self):
18081790
"""
18091791
Issue 13211 reveals that HTTPError didn't implement the URLError

Lib/test/test_urllib2_localnet.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,24 @@ def test_line_iteration(self):
659659
(index, len(lines[index]), len(line)))
660660
self.assertEqual(index + 1, len(lines))
661661

662+
def test_issue16464(self):
663+
# See https://bugs.python.org/issue16464
664+
# and https://bugs.python.org/issue46648
665+
handler = self.start_server([
666+
(200, [], b'any'),
667+
(200, [], b'any'),
668+
])
669+
opener = urllib.request.build_opener()
670+
request = urllib.request.Request("http://localhost:%s" % handler.port)
671+
self.assertEqual(None, request.data)
672+
673+
opener.open(request, "1".encode("us-ascii"))
674+
self.assertEqual(b"1", request.data)
675+
self.assertEqual("1", request.get_header("Content-length"))
676+
677+
opener.open(request, "1234567890".encode("us-ascii"))
678+
self.assertEqual(b"1234567890", request.data)
679+
self.assertEqual("10", request.get_header("Content-length"))
662680

663681
def setUpModule():
664682
thread_info = support.threading_setup()

0 commit comments

Comments
 (0)