def test_client_can_reconnect(): from pseud._gevent import Client, Server server_id = 'server' endpoint = 'tcp://127.0.0.1:8989' server_public, server_secret = zmq.curve_keypair() client_public, client_secret = zmq.curve_keypair() security_plugin = 'trusted_curve' server = Server(server_id, security_plugin=security_plugin, public_key=server_public, secret_key=server_secret) server.bind(endpoint) bob_public, bob_secret = server.auth_backend.known_identities[b'bob'] client = Client(server_id, security_plugin=security_plugin, public_key=bob_public, secret_key=bob_secret, peer_public_key=server_public) client.connect(endpoint) assert server.socket.mechanism == zmq.CURVE assert client.socket.mechanism == zmq.CURVE server.start() import string server.register_rpc(name='string.upper')(string.upper) future = client.string.upper('hello') assert future.get() == 'HELLO' client.disconnect(endpoint) client.connect(endpoint) gevent.sleep(.1) future = client.string.upper('hello') assert future.get() == 'HELLO' client.stop() server.stop()