diff --git a/Lib/http/client.py b/Lib/http/client.py index 08311d7bb82..939615b2fb4 100644 --- a/Lib/http/client.py +++ b/Lib/http/client.py @@ -864,7 +864,7 @@ class HTTPConnection: if encode: datablock = datablock.encode("iso-8859-1") self.sock.sendall(datablock) - + return try: self.sock.sendall(data) except TypeError: diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index a2f141ec5e8..b3688af8950 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -373,6 +373,27 @@ class BasicTest(TestCase): conn.send(io.BytesIO(expected)) self.assertEqual(expected, sock.data) + def test_send_updating_file(self): + def data(): + yield 'data' + yield None + yield 'data_two' + + class UpdatingFile(): + mode = 'r' + d = data() + def read(self, blocksize=-1): + return self.d.__next__() + + expected = b'data' + + conn = client.HTTPConnection('example.com') + sock = FakeSocket("") + conn.sock = sock + conn.send(UpdatingFile()) + self.assertEqual(sock.data, expected) + + def test_send_iter(self): expected = b'GET /foo HTTP/1.1\r\nHost: example.com\r\n' \ b'Accept-Encoding: identity\r\nContent-Length: 11\r\n' \ diff --git a/Misc/NEWS b/Misc/NEWS index 90c609e31df..c2f9e7a2b6e 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -34,6 +34,9 @@ Core and Builtins Library ------- +- Issue #16658: add missing return to HTTPConnection.send() + Patch by Jeff Knupp. + - Issue #9556: Allowed specifying a time-of-day for a TimedRotatingFileHandler to rotate.