diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-09 18:15:48 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-09 18:15:48 +0100 |
| commit | 9275f5fe05629574bffb39c7b5ea8eaaa4867e3a (patch) | |
| tree | 3f27821a6e7b44c7710cd2706b1251195ef9522a /tests/test_obsclient.py | |
| parent | 70deef7bc561f377eda231cf2b20e7e605b72623 (diff) | |
| download | deck-it-9275f5fe05629574bffb39c7b5ea8eaaa4867e3a.tar.gz deck-it-9275f5fe05629574bffb39c7b5ea8eaaa4867e3a.zip | |
feat: obs-websocket v5 client
Diffstat (limited to 'tests/test_obsclient.py')
| -rw-r--r-- | tests/test_obsclient.py | 29 |
1 files changed, 29 insertions, 0 deletions
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() |
