Fixed tests

This commit is contained in:
Fabio Manganiello 2018-01-29 16:34:00 +01:00
parent 0ff5adc4c1
commit 75fac37984
3 changed files with 19 additions and 13 deletions

View file

@ -4,7 +4,6 @@ import logging
import json
import os
import time
import websockets
from threading import Thread
from multiprocessing import Process
@ -24,12 +23,14 @@ class HttpBackend(Backend):
-d '{"type":"request","target":"nodename","action":"tts.say","args": {"phrase":"This is a test"}}' \
http://localhost:8008/execute """
def __init__(self, port=8008, websocket_port=8009, token=None, **kwargs):
def __init__(self, port=8008, websocket_port=8009, disable_websocket=False,
token=None, **kwargs):
super().__init__(**kwargs)
self.port = port
self.websocket_port = websocket_port
self.token = token
self.server_proc = None
self.disable_websocket = disable_websocket
self.websocket_thread = None
self.active_websockets = set()
@ -47,6 +48,8 @@ class HttpBackend(Backend):
def notify_web_clients(self, event):
import websockets
async def send_event(websocket):
await websocket.send(str(event))
@ -110,6 +113,8 @@ class HttpBackend(Backend):
def websocket(self):
import websockets
async def register_websocket(websocket, path):
logging.info('New websocket connection from {}'.format(websocket.remote_address[0]))
self.active_websockets.add(websocket)
@ -139,13 +144,15 @@ class HttpBackend(Backend):
'debug':True, 'host':'0.0.0.0', 'port':self.port, 'use_reloader':False
})
self.websocket_thread = Thread(target=self.websocket)
time.sleep(1)
self.server_proc.start()
if not self.disable_websocket:
self.websocket_thread = Thread(target=self.websocket)
self.websocket_thread.start()
self.server_proc.join()
self.websocket_thread.join()
# vim:sw=4:ts=4:et:

View file

@ -1,3 +1,4 @@
backend.http:
port: 8123
disable_websocket: True

View file

@ -47,14 +47,12 @@ class TestHttp(unittest.TestCase):
on_timeout=self.on_timeout('Receiver response timed out'))
response = requests.post(
u'http://localhost:8123/',
data = {
'msg': json.dumps({
u'http://localhost:8123/execute',
json = {
'type': 'request',
'target': Config.get('device_id'),
'action': 'shell.exec',
'args': { 'cmd':'echo ping' }
})
}
)