aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_obsclient.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_obsclient.py')
-rw-r--r--tests/test_obsclient.py29
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()