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()