From 9e123e3c111b5f6febd63a9f13aca27028edcebf Mon Sep 17 00:00:00 2001 From: Bernie Hackett Date: Mon, 6 Feb 2017 13:38:11 -0800 Subject: [PATCH] PYTHON-1235 - Fix auto reconnect test under Jython 2.7 --- test/test_replica_set_client.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/test/test_replica_set_client.py b/test/test_replica_set_client.py index 91ed6769f..fc58cbdc4 100644 --- a/test/test_replica_set_client.py +++ b/test/test_replica_set_client.py @@ -382,14 +382,19 @@ class TestReplicaSetClient(TestReplicaSetClientBase, TestRequestMixin): def raise_socket_error(*args, **kwargs): raise socket.error - old_sendall = socket.socket.sendall - socket.socket.sendall = raise_socket_error + # In Jython 2.7 socket.socket is a function, not a class. + sock = socket.socket() + klass = sock.__class__ + old_sendall = klass.sendall + klass.sendall = raise_socket_error try: cursor = db.test.find(read_preference=ReadPreference.SECONDARY) self.assertRaises(AutoReconnect, cursor.next) finally: - socket.socket.sendall = old_sendall + klass.sendall = old_sendall + # Silence resource warnings. + sock.close() def test_operations(self): c = self._get_client()