diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2012-05-19 08:58:09 (GMT) |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2012-05-19 08:58:09 (GMT) |
commit | 5fa4a896016e8a265b6afee64c61a1083c6ffa47 (patch) | |
tree | 2144befcbb5679eb13cdc8b7c51fa2550288ec9f /Lib/test | |
parent | 1be320ebdd5b1f46f32e32c83f3c1e982e2d27e2 (diff) | |
download | cpython-5fa4a896016e8a265b6afee64c61a1083c6ffa47.zip cpython-5fa4a896016e8a265b6afee64c61a1083c6ffa47.tar.gz cpython-5fa4a896016e8a265b6afee64c61a1083c6ffa47.tar.bz2 |
Fix Issue14721: Send Content-length: 0 for empty body () in the http.client requests
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_httplib.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 7c6c5bc..24c72ff 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -99,6 +99,34 @@ class HeaderTests(TestCase): conn.request('POST', '/', body, headers) self.assertEqual(conn._buffer.count[header.lower()], 1) + def test_content_length_0(self): + + class ContentLengthChecker(list): + def __init__(self): + list.__init__(self) + self.content_length = None + def append(self, item): + kv = item.split(b':', 1) + if len(kv) > 1 and kv[0].lower() == b'content-length': + self.content_length = kv[1].strip() + list.append(self, item) + + # POST with empty body + conn = client.HTTPConnection('example.com') + conn.sock = FakeSocket(None) + conn._buffer = ContentLengthChecker() + conn.request('POST', '/', '') + self.assertEqual(conn._buffer.content_length, b'0', + 'Header Content-Length not set') + + # PUT request with empty body + conn = client.HTTPConnection('example.com') + conn.sock = FakeSocket(None) + conn._buffer = ContentLengthChecker() + conn.request('PUT', '/', '') + self.assertEqual(conn._buffer.content_length, b'0', + 'Header Content-Length not set') + def test_putheader(self): conn = client.HTTPConnection('example.com') conn.sock = FakeSocket(None) |