From 5332d87511a9336c004af755f007aaa688d9c654 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 9 Nov 2026 18:11:41 +0100 Subject: feat: module contract and registry --- tests/test_module.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tests/test_module.py (limited to 'tests') diff --git a/tests/test_module.py b/tests/test_module.py new file mode 100644 index 0000000..ccfdd74 --- /dev/null +++ b/tests/test_module.py @@ -0,0 +1,33 @@ +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) + +import unittest + +import deckit.module as mod + + +def make(): + return mod.Module(name="demo", title="Demo", + state=lambda: {"ok": True}, + actions={"ping": lambda body: {"got": body.get("n")}}) + + +class RegistryTest(unittest.TestCase): + def test_lists_and_dispatches(self): + r = mod.Registry([make()]) + self.assertEqual(r.names(), [{"name": "demo", "title": "Demo"}]) + self.assertEqual(r.state("demo"), {"ok": True}) + self.assertEqual(r.run_action("demo", "ping", {"n": 3}), {"got": 3}) + + def test_unknown_module_and_action_raise(self): + r = mod.Registry([make()]) + with self.assertRaises(mod.ModuleError): + r.state("nope") + with self.assertRaises(mod.ModuleError): + r.run_action("demo", "nope", {}) + + +if __name__ == "__main__": + unittest.main() -- cgit v1.2.3