aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_obs.py13
-rw-r--r--tests/test_obsclient.py14
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/test_obs.py b/tests/test_obs.py
index aeb0791..cd317ed 100644
--- a/tests/test_obs.py
+++ b/tests/test_obs.py
@@ -3,9 +3,12 @@ from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
+import json
+import tempfile
import threading
import time
import unittest
+from pathlib import Path
import deckit.modules.obs as obs
@@ -49,6 +52,16 @@ class Actions(unittest.TestCase):
self.m.actions["record"](bad)
+class Password(unittest.TestCase):
+ def test_reads_the_password_obs_stores(self):
+ p = Path(tempfile.mkdtemp()) / "config.json"
+ p.write_text(json.dumps({"server_password": "sekret"}))
+ self.assertEqual(obs._obs_password(p), "sekret")
+
+ def test_missing_config_is_empty(self):
+ self.assertEqual(obs._obs_password(Path("/nonexistent/x.json")), "")
+
+
class Serialized(unittest.TestCase):
def test_actions_do_not_overlap(self):
active = 0
diff --git a/tests/test_obsclient.py b/tests/test_obsclient.py
index 54eadd1..fe97d35 100644
--- a/tests/test_obsclient.py
+++ b/tests/test_obsclient.py
@@ -25,6 +25,20 @@ class Disconnected(unittest.TestCase):
oc.ObsClient(host="127.0.0.1", port=4455, password="").request("GetVersion")
+class RecvJson(unittest.TestCase):
+ def test_empty_reply_is_a_clear_error(self):
+ c = oc.ObsClient()
+ c.ws = type("W", (), {"recv": lambda self: ""})()
+ with self.assertRaisesRegex(oc.ModuleError, "closed"):
+ c._recv_json()
+
+ def test_non_json_reply_is_a_clear_error(self):
+ c = oc.ObsClient()
+ c.ws = type("W", (), {"recv": lambda self: "HTTP/1.1 400"})()
+ with self.assertRaisesRegex(oc.ModuleError, "non-JSON"):
+ c._recv_json()
+
+
class RecvLoop(unittest.TestCase):
def test_a_recv_timeout_does_not_end_the_loop(self):
import websocket