diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3ed3205
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,51 @@
+*.*~
+*.dll
+*.e4*
+*.kate-swp
+*.kdev4
+*.komodoproject
+*.log*
+*.nja
+*.orig
+*.pyc
+*.qm
+*.rej
+*.ropeproject
+*.~\?~
+*eric[1-9]project
+.cache
+.coverage
+.directory
+.eggs
+.idea
+.kdev4
+.komodotools
+.pytest_cache
+.venv
+.vscode
+.eggs
+.venv
+.mypy_cache
+OpenLP.egg-info
+\#*\#
+__pycache__
+build
+cover
+coverage
+dist
+env
+htmlcov
+list
+node_modules
+openlp.cfg
+openlp.pro
+openlp/core/resources.py
+openlp/core/resources.py.old
+openlp/plugins/presentations/lib/vendor/Pyro4
+openlp/plugins/presentations/lib/vendor/serpent.py
+output
+package-lock.json
+tags
+test
+openlp-test-projectordb.sqlite
+*/test-results.xml
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 8f2739c..0000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
deleted file mode 100644
index 105ce2d..0000000
--- a/.idea/inspectionProfiles/profiles_settings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index d4fc832..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 0a7a2bf..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/openlp-api-tester.iml b/.idea/openlp-api-tester.iml
deleted file mode 100644
index 8dc09e5..0000000
--- a/.idea/openlp-api-tester.iml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/test_api/apitest/runner.py b/test_api/apitest/runner.py
index 26ced4a..dc8011d 100644
--- a/test_api/apitest/runner.py
+++ b/test_api/apitest/runner.py
@@ -23,11 +23,13 @@ import requests
import string
import time
import random
+import threading
+import websocket
from websocket import create_connection
from test_api.apitest.constants import BookNames
-from test_api.apitest.logger import print_text, print_error, print_ok
+from test_api.apitest.logger import print_text, print_error, print_ok, print_info
class RunTestsController(object):
@@ -37,7 +39,41 @@ class RunTestsController(object):
self.http_port = http_port
self.ws_port = ws_port
self.reserved_result_stage = None
- self.reserved_result_live = None
+ self.received = False
+
+ def connect(self) -> None:
+ print_info("Starting thread")
+ self.ws = websocket.WebSocketApp(f'ws://{self.address}:{self.ws_port}',
+ on_message=self.on_message,
+ on_close=self.on_close,
+ on_open=self.on_open,
+ on_error=self.on_error,
+ )
+ self.wst = threading.Thread(target=lambda: self.ws.run_forever())
+ self.wst.daemon = True
+ self.wst.start()
+
+ conn_timeout = 5
+ while (not self.ws.sock or not self.ws.sock.connected) and conn_timeout:
+ human_delay(1)
+ conn_timeout -= 1
+ if not conn_timeout:
+ print_error("Could not connect to WS! Exiting.")
+
+ def on_message(self, message: str) -> None:
+ print_info("Message returned")
+ self.result_stage = message
+ self.compare_stage()
+ self.received = True
+
+ def on_open(self) -> None:
+ print_info("opened")
+
+ def on_close(self) -> None:
+ print_info("closed")
+
+ def on_error(self, error: str) -> None:
+ print_error(f'WebSocket Error: {error}')
def load_and_check_sockets(self, first_run: bool = False) -> bool:
ws = create_connection(f'ws://{self.address}:{self.ws_port}')
@@ -61,16 +97,18 @@ class RunTestsController(object):
"""
:return:
"""
- self.stage_diff = {}
- reserved = json.loads(self.reserved_result_stage.decode('utf-8'))['results']
- current = json.loads(self.result_stage.decode('utf-8'))['results']
- # compare_strings(reserved, current)
- assert len(reserved) == len(current)
- for a, _ in current.items():
- # compare_strings(reserved[a], current[a])
- if reserved[a] != current[a]:
- self.stage_diff[a] = {'before': reserved[a], 'after': current[a]}
- self.reserved_result_stage = self.result_stage
+ if self.received:
+ self.stage_diff = {}
+ reserved = json.loads(self.reserved_result_stage.decode('utf-8'))['results']
+ current = json.loads(self.result_stage.decode('utf-8'))['results']
+ self.received = False
+ # compare_strings(reserved, current)
+ assert len(reserved) == len(current)
+ for a, _ in current.items():
+ # compare_strings(reserved[a], current[a])
+ if reserved[a] != current[a]:
+ self.stage_diff[a] = {'before': reserved[a], 'after': current[a]}
+ self.reserved_result_stage = self.result_stage
def marshal_full(self):
print_ok('Running full test script')
@@ -295,8 +333,8 @@ def live_item(rtc: RunTestsController, plugin: str) -> None:
def check_websocket_changes(rtc: RunTestsController, manditary: int, optional: int) -> None:
- rtc.load_and_check_sockets()
- rtc.compare_stage()
+ while not rtc.received:
+ time.sleep(0.1)
if manditary <= len(rtc.stage_diff) <= optional:
pass
else:
diff --git a/test_api/runner.py b/test_api/runner.py
index 78fdd82..9cb6426 100644
--- a/test_api/runner.py
+++ b/test_api/runner.py
@@ -29,7 +29,7 @@ def start() -> None:
Instantiate and run the tests.
:return:
"""
- print_text('OpenLP - API Test Runner V0_1')
+ print_text('OpenLP - API Test Runner V0_2')
print_text('Check OpenLP is running')
op_address, op_http_port = check_for_openlp('http')
if not op_http_port:
@@ -41,6 +41,7 @@ def start() -> None:
print_ok(f'OpenLP is running network Address {op_address}')
print_ok(f'OpenLP is running on port (ws) {op_ws_port}')
rtc = RunTestsController(op_address, op_http_port, op_ws_port)
+ rtc.connect()
rtc.marshal_full()
#nrtc.marshal_media()
print_text('Finished running tests')
diff --git a/x1.py b/x1.py
deleted file mode 100644
index ca80eca..0000000
--- a/x1.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import websocket
-import ssl
-import sys
-from time import sleep
-import threading
-
-
-class MyWebSocket():
- def connect(self, wsURL="wss://www.bitmex.com/realtime?subscribe=quote:XBTUSD"):
- print("Starting thread")
- ssl_defaults = ssl.get_default_verify_paths()
- sslopt_ca_certs = {"ca_certs": ssl_defaults.cafile}
- self.ws = websocket.WebSocketApp(wsURL,
- on_message=self.__on_message,
- on_close=self.__on_close,
- on_open=self.__on_open,
- on_error=self.__on_error,
- )
- self.wst = threading.Thread(target=lambda: self.ws.run_forever(sslopt=sslopt_ca_certs))
- self.wst.daemon = True
- self.wst.start()
-
- conn_timeout = 5
- while (not self.ws.sock or not self.ws.sock.connected) and conn_timeout:
- sleep(1)
- conn_timeout -= 1
- if not conn_timeout:
- print("Could not connect to WS! Exiting.")
- sys.exit(1)
-
- def __on_message(self, message):
- print(message)
-
- def __on_open(self):
- print("opened")
-
- def __on_close(self):
- print("closed")
-
- def __on_error(self, error):
- print("error")
-
- def run(self):
- self.connect()
- while True:
- print("hello mum")
- sleep(1)
-
-websocket.enableTrace(True)
-mysocket = MyWebSocket()
-mysocket.run()
-#mysocket.connect()
-
-#while True:#
-# sleep(1)
-print("the end")
\ No newline at end of file