diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_module.py | 33 |
1 files changed, 33 insertions, 0 deletions
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() |
