Skip to content

Commit 0dac2c7

Browse files
committed
Attempt 4 on fixing fake server tests on travis
1 parent 2015f12 commit 0dac2c7

File tree

3 files changed

+24
-7
lines changed

3 files changed

+24
-7
lines changed

pssh.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def _connect(self):
107107
self.port,))
108108
except paramiko.AuthenticationException, e:
109109
raise AuthenticationException(e)
110+
gevent.sleep(0)
110111

111112
def exec_command(self, command, sudo=False, **kwargs):
112113
"""Wrapper to :mod:`paramiko.SSHClient.exec_command`
@@ -146,6 +147,7 @@ def _make_sftp(self):
146147
"""Make SFTP client from open transport"""
147148
transport = self.client.get_transport()
148149
channel = transport.open_session()
150+
gevent.sleep(0)
149151
return paramiko.SFTPClient.from_transport(transport)
150152

151153
def mkdir(self, sftp, directory):
@@ -162,6 +164,7 @@ def mkdir(self, sftp, directory):
162164
except IOError, error:
163165
logger.error("Error occured creating directory on %s - %s",
164166
self.host, error)
167+
gevent.sleep(0)
165168

166169
def copy_file(self, local_file, remote_file):
167170
"""Copy local file to host via SFTP/SCP
@@ -192,6 +195,7 @@ def copy_file(self, local_file, remote_file):
192195
else:
193196
logger.info("Copied local file %s to remote destination %s:%s",
194197
local_file, self.host, remote_file)
198+
gevent.sleep(0)
195199

196200
class ParallelSSHClient(object):
197201
"""

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
paramiko
2-
gevent
2+
gevent>=1

tests/test_pssh_client.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
from fake_server.fake_server import listen, make_socket, logger as server_logger
99
import random
1010
import logging
11+
import gevent
12+
import threading
1113

1214
_setup_logger(server_logger)
1315

@@ -22,20 +24,17 @@ def setUp(self):
2224
def cleanUp(self):
2325
del self.listener
2426

25-
def test_pssh_client_exec_command(self):
26-
server = listen({ self.fake_cmd : self.fake_resp }, self.listener)
27+
def _run_client_exec_command(self):
2728
client = ParallelSSHClient(['localhost'], port=self.listen_port)
2829
cmd = client.exec_command(self.fake_cmd)[0]
2930
output = client.get_stdout(cmd)
3031
expected = {'localhost' : {'exit_code' : 0}}
3132
self.assertEqual(expected, output,
3233
msg = "Got unexpected command output - %s" % (output,))
34+
gevent.sleep(0)
3335
del client
34-
server.join()
3536

36-
def test_pssh_client_auth_failure(self):
37-
server = listen({ self.fake_cmd : self.fake_resp },
38-
self.listener, fail_auth=True)
37+
def _run_client_fail_auth(self):
3938
client = ParallelSSHClient(['localhost'], port=self.listen_port)
4039
cmd = client.exec_command(self.fake_cmd)[0]
4140
# Handle exception
@@ -45,4 +44,18 @@ def test_pssh_client_auth_failure(self):
4544
except AuthenticationException:
4645
pass
4746
del client
47+
48+
def test_pssh_client_exec_command(self):
49+
server = listen({ self.fake_cmd : self.fake_resp }, self.listener)
50+
client = threading.Thread(target=self._run_client_exec_command)
51+
client.start()
52+
client.join()
53+
server.join()
54+
55+
def test_pssh_client_auth_failure(self):
56+
server = listen({ self.fake_cmd : self.fake_resp },
57+
self.listener, fail_auth=True)
58+
client = threading.Thread(target=self._run_client_fail_auth)
59+
client.start()
60+
client.join()
4861
server.join()

0 commit comments

Comments
 (0)