diff -r 3eec7bcc14a4 Lib/ssl.py --- a/Lib/ssl.py Thu Mar 24 17:53:20 2016 +0100 +++ b/Lib/ssl.py Fri Mar 25 11:43:42 2016 +0300 @@ -886,7 +886,6 @@ while (count < amount): v = self.send(data[count:]) count += v - return amount else: return socket.sendall(self, data, flags) diff -r 3eec7bcc14a4 Lib/test/test_ssl.py --- a/Lib/test/test_ssl.py Thu Mar 24 17:53:20 2016 +0100 +++ b/Lib/test/test_ssl.py Fri Mar 25 11:43:42 2016 +0300 @@ -2718,12 +2718,13 @@ count, addr = s.recvfrom_into(b) return b[:count] + # (name, method, whether to expect success, *args, calculate_return_value_method) + send_methods = [ + ('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) - send_methods = [ - ('send', s.send, True, []), - ('sendto', s.sendto, False, ["some.address"]), - ('sendall', s.sendall, True, []), - ] recv_methods = [ ('recv', s.recv, True, []), ('recvfrom', s.recvfrom, False, ["some.address"]), @@ -2732,10 +2733,12 @@ ] 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) + self.assertEqual(ret, ret_val_meth(indata), + msg="sending with {}".format(meth_name)) outdata = s.read() if outdata != indata.lower(): self.fail(