Skip to content

Commit f097fad

Browse files
Add also test for non-truncated large body.
1 parent 25166b1 commit f097fad

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

Lib/test/test_httplib.py

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,15 +1440,48 @@ def test_large_content_length(self):
14401440
serv = socket.create_server((HOST, 0))
14411441
self.addCleanup(serv.close)
14421442

1443+
def run_server():
1444+
[conn, address] = serv.accept()
1445+
with conn:
1446+
while conn.recv(1024):
1447+
conn.sendall(
1448+
b"HTTP/1.1 200 Ok\r\n"
1449+
b"Content-Length: %d\r\n"
1450+
b"\r\n" % size)
1451+
conn.sendall(b'A' * (size//3))
1452+
conn.sendall(b'B' * (size - size//3))
1453+
1454+
thread = threading.Thread(target=run_server)
1455+
thread.start()
1456+
self.addCleanup(thread.join, 1.0)
1457+
1458+
conn = client.HTTPConnection(*serv.getsockname())
1459+
try:
1460+
for w in range(15, 27):
1461+
size = 1 << w
1462+
conn.request("GET", "/")
1463+
with conn.getresponse() as response:
1464+
self.assertEqual(len(response.read()), size)
1465+
finally:
1466+
conn.close()
1467+
thread.join(1.0)
1468+
1469+
def test_large_content_length_truncated(self):
1470+
serv = socket.create_server((HOST, 0))
1471+
self.addCleanup(serv.close)
1472+
14431473
def run_server():
14441474
while True:
14451475
[conn, address] = serv.accept()
14461476
with conn:
14471477
conn.recv(1024)
14481478
if not size:
14491479
break
1450-
body = b"HTTP/1.1 200 Ok\r\nContent-Length: %d\r\n\r\nText" % size
1451-
conn.sendall(body)
1480+
conn.sendall(
1481+
b"HTTP/1.1 200 Ok\r\n"
1482+
b"Content-Length: %d\r\n"
1483+
b"\r\n"
1484+
b"Text" % size)
14521485

14531486
thread = threading.Thread(target=run_server)
14541487
thread.start()
@@ -1467,7 +1500,7 @@ def run_server():
14671500
size = 0
14681501
conn.request("GET", "/")
14691502
conn.close()
1470-
thread.join()
1503+
thread.join(1.0)
14711504

14721505
def test_putrequest_override_domain_validation(self):
14731506
"""

0 commit comments

Comments
 (0)