@@ -99,6 +99,34 @@ def append(self, item):
9999 conn .request ('POST' , '/' , body , headers )
100100 self .assertEqual (conn ._buffer .count [header .lower ()], 1 )
101101
102+ def test_content_length_0 (self ):
103+
104+ class ContentLengthChecker (list ):
105+ def __init__ (self ):
106+ list .__init__ (self )
107+ self .content_length = None
108+ def append (self , item ):
109+ kv = item .split (b':' , 1 )
110+ if len (kv ) > 1 and kv [0 ].lower () == b'content-length' :
111+ self .content_length = kv [1 ].strip ()
112+ list .append (self , item )
113+
114+ # POST with empty body
115+ conn = client .HTTPConnection ('example.com' )
116+ conn .sock = FakeSocket (None )
117+ conn ._buffer = ContentLengthChecker ()
118+ conn .request ('POST' , '/' , '' )
119+ self .assertEqual (conn ._buffer .content_length , b'0' ,
120+ 'Header Content-Length not set' )
121+
122+ # PUT request with empty body
123+ conn = client .HTTPConnection ('example.com' )
124+ conn .sock = FakeSocket (None )
125+ conn ._buffer = ContentLengthChecker ()
126+ conn .request ('PUT' , '/' , '' )
127+ self .assertEqual (conn ._buffer .content_length , b'0' ,
128+ 'Header Content-Length not set' )
129+
102130 def test_putheader (self ):
103131 conn = client .HTTPConnection ('example.com' )
104132 conn .sock = FakeSocket (None )
0 commit comments