From: Martin Panter Date: Sun, 3 Apr 2016 02:12:54 +0000 (+0000) Subject: Issue #25951: Fix SSLSocket.sendall() to return None, by Aviv Palivoda X-Git-Tag: v3.6.0a1~275 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=519f91215bd353c745946e5d892fd1f089dbcb84;p=python Issue #25951: Fix SSLSocket.sendall() to return None, by Aviv Palivoda --- diff --git a/Lib/ssl.py b/Lib/ssl.py index 65ad38f899..68db748aa8 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -886,7 +886,6 @@ class SSLSocket(socket): while (count < amount): v = self.send(data[count:]) count += v - return amount else: return socket.sendall(self, data, flags) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index e0f231c0ab..00d437a951 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -2709,12 +2709,13 @@ if _have_threads: count, addr = s.recvfrom_into(b) return b[:count] - # (name, method, whether to expect success, *args) + # (name, method, expect success?, *args, return value func) send_methods = [ - ('send', s.send, True, []), - ('sendto', s.sendto, False, ["some.address"]), - ('sendall', s.sendall, True, []), + ('send', s.send, True, [], len), + ('sendto', s.sendto, False, ["some.address"], len), + ('sendall', s.sendall, True, [], lambda x: None), ] + # (name, method, whether to expect success, *args) recv_methods = [ ('recv', s.recv, True, []), ('recvfrom', s.recvfrom, False, ["some.address"]), @@ -2723,10 +2724,13 @@ if _have_threads: ] data_prefix = "PREFIX_" - for meth_name, send_meth, expect_success, args in send_methods: + for (meth_name, send_meth, expect_success, args, + ret_val_meth) in send_methods: indata = (data_prefix + meth_name).encode('ascii') try: - send_meth(indata, *args) + ret = send_meth(indata, *args) + msg = "sending with {}".format(meth_name) + self.assertEqual(ret, ret_val_meth(indata), msg=msg) outdata = s.read() if outdata != indata.lower(): self.fail( diff --git a/Misc/NEWS b/Misc/NEWS index cba8466109..f66014a7dc 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -237,6 +237,9 @@ Core and Builtins Library ------- +- Issue #25951: Change SSLSocket.sendall() to return None, as explicitly + documented for plain socket objects. Patch by Aviv Palivoda. + - Issue #26586: In http.server, respond with "413 Request header fields too large" if there are too many header fields to parse, rather than killing the connection and raising an unhandled exception. Patch by Xiang Zhang.