parent
490abb302c
commit
46fd926acc
@ -0,0 +1,42 @@ |
||||
from multiprocessing import Process |
||||
import socket |
||||
import sys |
||||
import time |
||||
|
||||
import requests |
||||
|
||||
from ceo_common.model import RemoteMailmanService |
||||
|
||||
|
||||
def test_remote_mailman(cfg, http_client, app, mock_mailman_server, g_syscom): |
||||
port = cfg.get('ceod_port') |
||||
hostname = socket.gethostname() |
||||
|
||||
def server_start(): |
||||
sys.stdout = open('/dev/null', 'w') |
||||
sys.stderr = sys.stdout |
||||
app.run(debug=False, host='0.0.0.0', port=port) |
||||
|
||||
proc = Process(target=server_start) |
||||
proc.start() |
||||
|
||||
for _ in range(5): |
||||
try: |
||||
http_client.get(hostname, '/ping') |
||||
except requests.exceptions.ConnectionError: |
||||
time.sleep(0.5) |
||||
continue |
||||
break |
||||
|
||||
try: |
||||
mailman_srv = RemoteMailmanService() |
||||
assert mock_mailman_server.subscriptions['csc-general'] == [] |
||||
# RemoteMailmanService -> app -> MailmanService -> MockMailmanServer |
||||
address = 'test_1@csclub.internal' |
||||
mailman_srv.subscribe(address, 'csc-general') |
||||
assert mock_mailman_server.subscriptions['csc-general'] == [address] |
||||
mailman_srv.unsubscribe(address, 'csc-general') |
||||
assert mock_mailman_server.subscriptions['csc-general'] == [] |
||||
finally: |
||||
proc.terminate() |
||||
proc.join() |
Loading…
Reference in new issue