bpo-33365: print the header values beside the keys (GH-6611) · python/cpython@2edcf0a

3 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -321,7 +321,7 @@ def begin(self):

321321
322322

if self.debuglevel > 0:

323323

for hdr in self.headers:

324-

print("header:", hdr, end=" ")

324+

print("header:", hdr + ":", self.headers.get(hdr))

325325
326326

# are we using the chunked-style of transfer encoding?

327327

tr_enc = self.headers.get("transfer-encoding")

Original file line numberDiff line numberDiff line change

@@ -344,6 +344,21 @@ def test_invalid_headers(self):

344344

with self.assertRaisesRegex(ValueError, 'Invalid header'):

345345

conn.putheader(name, value)

346346
347+

def test_headers_debuglevel(self):

348+

body = (

349+

b'HTTP/1.1 200 OK\r\n'

350+

b'First: val\r\n'

351+

b'Second: val\r\n'

352+

)

353+

sock = FakeSocket(body)

354+

resp = client.HTTPResponse(sock, debuglevel=1)

355+

with support.captured_stdout() as output:

356+

resp.begin()

357+

lines = output.getvalue().splitlines()

358+

self.assertEqual(lines[0], "reply: 'HTTP/1.1 200 OK\\r\\n'")

359+

self.assertEqual(lines[1], "header: First: val")

360+

self.assertEqual(lines[2], "header: Second: val")

361+
347362
348363

class TransferEncodingTest(TestCase):

349364

expected_body = b"It's just a flesh wound"

Original file line numberDiff line numberDiff line change

@@ -0,0 +1 @@

1+

Print the header values besides the header keys instead just the header keys if *debuglevel* is set to >0 in :mod:`http.client`. Patch by Marco Strigl.