From 9275f5fe05629574bffb39c7b5ea8eaaa4867e3a Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 9 Nov 2026 18:15:48 +0100 Subject: feat: obs-websocket v5 client --- tests/test_obsclient.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/test_obsclient.py (limited to 'tests/test_obsclient.py') diff --git a/tests/test_obsclient.py b/tests/test_obsclient.py new file mode 100644 index 0000000..7d1a5ca --- /dev/null +++ b/tests/test_obsclient.py @@ -0,0 +1,29 @@ +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +import base64 +import hashlib +import unittest + +import deckit.obsclient as oc + + +class Auth(unittest.TestCase): + def test_matches_protocol_formula(self): + pw, salt, challenge = "supersecret", "salty", "chall" + step1 = base64.b64encode(hashlib.sha256((pw + salt).encode()).digest()).decode() + expected = base64.b64encode(hashlib.sha256((step1 + challenge).encode()).digest()).decode() + self.assertEqual(oc.auth_string(pw, salt, challenge), expected) + self.assertNotEqual(oc.auth_string("other", salt, challenge), expected) + + +class Disconnected(unittest.TestCase): + def test_request_raises_when_closed(self): + with self.assertRaises(oc.ModuleError): + oc.ObsClient(host="127.0.0.1", port=4455, password="").request("GetVersion") + + +if __name__ == "__main__": + unittest.main() -- cgit v1.2.3