diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_obs.py | 13 | ||||
| -rw-r--r-- | tests/test_obsclient.py | 14 |
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 |
