changeset: 82820:b1579eb4e1bc user: R David Murray date: Wed Mar 20 00:10:51 2013 -0400 files: Lib/test/test_urllib2.py Lib/urllib/request.py Misc/ACKS Misc/NEWS description: #17485: Delete the Content-Length header if the data attribute is deleted. This is a follow on to issue 16464. Original patch by Daniel Wozniak. diff -r c6af0b3de726 -r b1579eb4e1bc Lib/test/test_urllib2.py --- a/Lib/test/test_urllib2.py Tue Mar 19 20:26:39 2013 -0700 +++ b/Lib/test/test_urllib2.py Wed Mar 20 00:10:51 2013 -0400 @@ -1488,11 +1488,20 @@ # if we change data we need to remove content-length header # (cause it's most probably calculated for previous value) def test_setting_data_should_remove_content_length(self): - self.assertFalse("Content-length" in self.get.unredirected_hdrs) + self.assertNotIn("Content-length", self.get.unredirected_hdrs) self.get.add_unredirected_header("Content-length", 42) self.assertEqual(42, self.get.unredirected_hdrs["Content-length"]) self.get.data = "spam" - self.assertFalse("Content-length" in self.get.unredirected_hdrs) + self.assertNotIn("Content-length", self.get.unredirected_hdrs) + + # issue 17485 same for deleting data. + def test_deleting_data_should_remove_content_length(self): + self.assertNotIn("Content-length", self.get.unredirected_hdrs) + self.get.data = 'foo' + self.get.add_unredirected_header("Content-length", 3) + self.assertEqual(3, self.get.unredirected_hdrs["Content-length"]) + del self.get.data + self.assertNotIn("Content-length", self.get.unredirected_hdrs) def test_get_full_url(self): self.assertEqual("http://www.python.org/~jeremy/", diff -r c6af0b3de726 -r b1579eb4e1bc Lib/urllib/request.py --- a/Lib/urllib/request.py Tue Mar 19 20:26:39 2013 -0700 +++ b/Lib/urllib/request.py Wed Mar 20 00:10:51 2013 -0400 @@ -296,7 +296,7 @@ @data.deleter def data(self): - self._data = None + self.data = None def _parse(self): self.type, rest = splittype(self.full_url) diff -r c6af0b3de726 -r b1579eb4e1bc Misc/ACKS --- a/Misc/ACKS Tue Mar 19 20:26:39 2013 -0700 +++ b/Misc/ACKS Wed Mar 20 00:10:51 2013 -0400 @@ -1341,6 +1341,7 @@ Gordon Worley Darren Worrall Thomas Wouters +Daniel Wozniak Heiko Wundram Doug Wyatt Robert Xiao diff -r c6af0b3de726 -r b1579eb4e1bc Misc/NEWS --- a/Misc/NEWS Tue Mar 19 20:26:39 2013 -0700 +++ b/Misc/NEWS Wed Mar 20 00:10:51 2013 -0400 @@ -292,6 +292,9 @@ Library ------- +- Issue #17485: Also delete the Request Content-Length header if the data + attribute is deleted. (Follow on to issue 16464). + - Issue #15927: CVS now correctly parses escaped newlines and carriage when parsing with quoting turned off.