Skip to content

Commit 2e355cf

Browse files
committed
Use separate process for fake server
1 parent 4c078cd commit 2e355cf

File tree

2 files changed

+12
-24
lines changed

2 files changed

+12
-24
lines changed

fake_server/fake_server.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
paramiko repository
99
"""
1010

11+
import multiprocessing
1112
import os
1213
import socket
13-
import threading
14+
# import threading
1415
from threading import Event
1516
import sys
1617
import traceback
@@ -90,9 +91,9 @@ def listen(cmd_req_response, sock, fail_auth = False):
9091
logger.error('*** Listen failed: %s' % (str(e),))
9192
traceback.print_exc()
9293
return
93-
accept_thread = threading.Thread(target=handle_ssh_connection,
94-
args=(cmd_req_response, sock,),
95-
kwargs={'fail_auth' : fail_auth},)
94+
accept_thread = multiprocessing.Process(target=handle_ssh_connection,
95+
args=(cmd_req_response, sock,),
96+
kwargs={'fail_auth' : fail_auth},)
9697
accept_thread.start()
9798
return accept_thread
9899

@@ -146,4 +147,8 @@ def handle_ssh_connection(cmd_req_response, sock, fail_auth = False):
146147
logger.setLevel(logging.DEBUG)
147148
sock = make_socket('127.0.0.1')
148149
server = listen({'fake' : 'fake response' + os.linesep}, sock)
149-
server.join()
150+
try:
151+
server.join()
152+
except KeyboardInterrupt:
153+
sys.exit(0)
154+

tests/test_pssh_client.py

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import logging
1111
import gevent
1212
import threading
13-
import time
1413

1514
_setup_logger(server_logger)
1615

@@ -25,38 +24,22 @@ def setUp(self):
2524
def cleanUp(self):
2625
del self.listener
2726

28-
def _run_client_exec_command(self):
29-
client = ParallelSSHClient(['localhost'], port=self.listen_port)
30-
cmd = client.exec_command(self.fake_cmd)[0]
31-
output = client.get_stdout(cmd)
32-
expected = {'localhost' : {'exit_code' : 0}}
33-
self.assertEqual(expected, output,
34-
msg = "Got unexpected command output - %s" % (output,))
35-
gevent.sleep(0)
36-
del client
37-
38-
# def _run_client_fail_auth(self):
39-
# try:
40-
# except Exception:
41-
# raise SystemExit
42-
4327
def test_pssh_client_exec_command(self):
4428
server = listen({ self.fake_cmd : self.fake_resp }, self.listener)
45-
time.sleep(5)
29+
gevent.sleep(5)
4630
client = ParallelSSHClient(['localhost'], port=self.listen_port)
4731
cmd = client.exec_command(self.fake_cmd)[0]
4832
output = client.get_stdout(cmd)
4933
expected = {'localhost' : {'exit_code' : 0}}
5034
self.assertEqual(expected, output,
5135
msg = "Got unexpected command output - %s" % (output,))
52-
gevent.sleep(0)
5336
del client
5437
server.join()
5538

5639
def test_pssh_client_auth_failure(self):
5740
server = listen({ self.fake_cmd : self.fake_resp },
5841
self.listener, fail_auth=True)
59-
time.sleep(5)
42+
gevent.sleep(5)
6043
client = ParallelSSHClient(['localhost'], port=self.listen_port)
6144
cmd = client.exec_command(self.fake_cmd)[0]
6245
# Handle exception

0 commit comments

Comments
 (0)