Module: check_mk
Branch: master
Commit: 63a273e022d266244716d4f897bc5e68943bd164
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=63a273e022d266…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Jul 23 18:25:56 2018 +0200
Add unit tests for plugin registry
Change-Id: I1dd263db8f5e6feeb0a7100bb4eae43089bc8711
---
tests/unit/web/test_plugin_registry.py | 90 ++++++++++++++++++++++++++++++++++
1 file changed, 90 insertions(+)
diff --git a/tests/unit/web/test_plugin_registry.py
b/tests/unit/web/test_plugin_registry.py
new file mode 100644
index 0000000..b9b3931
--- /dev/null
+++ b/tests/unit/web/test_plugin_registry.py
@@ -0,0 +1,90 @@
+import pytest
+
+import cmk.gui.plugin_registry
+
+class Plugin(object):
+ pass
+
+
+class PluginRegistry(cmk.gui.plugin_registry.ClassRegistry):
+ def plugin_base_class(self):
+ return Plugin
+
+ def _register(self, plugin_class):
+ self._entries[plugin_class.__name__] = plugin_class
+
+
+(a)pytest.fixture(scope="module")
+def basic_registry():
+ registry = PluginRegistry()
+ registry.register_plugin(Plugin)
+ return registry
+
+
+def test_initialization():
+ registry = PluginRegistry()
+ assert registry.items() == []
+
+
+def test_decorator_registration():
+ registry = PluginRegistry()
+ assert registry.items() == []
+
+ @registry.register
+ class DecoratedPlugin(object):
+ pass
+
+ assert registry.get("DecoratedPlugin") == DecoratedPlugin
+
+
+def test_method_registration():
+ registry = PluginRegistry()
+ assert registry.items() == []
+
+ class MethodRegisteredPlugin(object):
+ pass
+
+ registry.register_plugin(MethodRegisteredPlugin)
+ assert registry.get("MethodRegisteredPlugin") == MethodRegisteredPlugin
+
+
+def test_contains(basic_registry):
+ assert "bla" not in basic_registry
+ assert "Plugin" in basic_registry
+
+
+def test_delitem(basic_registry):
+ with pytest.raises(KeyError):
+ del basic_registry["bla"]
+
+ @basic_registry.register
+ class DelPlugin(object):
+ pass
+
+ del basic_registry["DelPlugin"]
+
+
+def test_getitem(basic_registry):
+ with pytest.raises(KeyError):
+ _unused = basic_registry["bla"]
+
+ assert basic_registry["Plugin"] == Plugin
+
+
+def test_values(basic_registry):
+ assert basic_registry.values() == [Plugin]
+
+
+def test_items(basic_registry):
+ assert basic_registry.items() == [("Plugin", Plugin)]
+
+
+def test_keys(basic_registry):
+ assert basic_registry.keys() == ["Plugin"]
+
+
+def test_get(basic_registry):
+ assert basic_registry.get("bla") is None
+ assert basic_registry.get("bla", "blub") == "blub"
+
+ assert basic_registry.get("Plugin") == Plugin