def test_remove_plugin(datadir, simple_plugin, simple_plugin_2): plugins_dirs = [simple_plugin['path'], simple_plugin_2['path']] hm = HookMan(specs=simple_plugin['specs'], plugin_dirs=plugins_dirs) assert len(hm.get_plugins_available()) == 2 assert len(list((datadir / 'plugins').iterdir())) == 2 hm.remove_plugin('Simple Plugin 2') assert len(hm.get_plugins_available()) == 1 assert len(list((datadir / 'plugins').iterdir())) == 1
def test_remove_plugin(datadir, simple_plugin, simple_plugin_2): plugins_dirs = [simple_plugin["path"], simple_plugin_2["path"]] hm = HookMan(specs=simple_plugin["specs"], plugin_dirs=plugins_dirs) assert len(hm.get_plugins_available()) == 2 assert len(list((datadir / "plugins").iterdir())) == 2 hm.remove_plugin("simple_plugin_2") assert len(hm.get_plugins_available()) == 1 assert len(list((datadir / "plugins").iterdir())) == 1
def test_remove_plugin(datadir, simple_plugin, simple_plugin_2): plugins_dirs = [simple_plugin["path"], simple_plugin_2["path"]] hm = HookMan(specs=simple_plugin["specs"], plugin_dirs=plugins_dirs) assert _get_plugin_id_set( hm.get_plugins_available()) == {"simple_plugin", "simple_plugin_2"} assert _get_names_inside_folder( datadir / "plugins") == {"simple_plugin", "simple_plugin_2"} hm.remove_plugin("simple_plugin_2") assert _get_plugin_id_set(hm.get_plugins_available()) == {"simple_plugin"} assert _get_names_inside_folder(datadir / "plugins") == {"simple_plugin", ".trash"} assert _get_names_inside_folder(datadir / "plugins" / ".trash") == set()
def test_plugins_available_ignore_trash(datadir, simple_plugin, simple_plugin_2): plugin_dirs = [simple_plugin["path"], simple_plugin_2["path"]] hm = HookMan(specs=simple_plugin["specs"], plugin_dirs=plugin_dirs) plugins = hm.get_plugins_available() assert {p.id for p in plugins} == {"simple_plugin", "simple_plugin_2"} hm._move_to_trash(datadir / "plugins", "simple_plugin") plugins = hm.get_plugins_available() assert {p.id for p in plugins} == {"simple_plugin_2"} hm._move_to_trash(datadir / "plugins", "simple_plugin_2") plugins = hm.get_plugins_available() assert {p.id for p in plugins} == set()
def test_plugins_available(simple_plugin, simple_plugin_2): plugin_dirs = [simple_plugin['path'], simple_plugin_2['path']] hm = HookMan(specs=simple_plugin['specs'], plugin_dirs=plugin_dirs) plugins = hm.get_plugins_available() assert len(plugins) == 2 import attr assert list(attr.asdict(plugins[0]).keys()) == [ 'yaml_location', 'hooks_available', 'author', 'description', 'email', 'hooks_implemented', 'name', 'shared_lib_name', 'shared_lib_path', 'version', ] plugins = hm.get_plugins_available(ignored_plugins=['Simple Plugin 2']) assert len(plugins) == 1
def test_get_hook_caller_passing_ignored_plugins(datadir, simple_plugin, simple_plugin_2): plugins_dirs = [simple_plugin['path'], simple_plugin_2['path']] hm = HookMan(specs=simple_plugin['specs'], plugin_dirs=plugins_dirs) assert len(hm.get_plugins_available()) == 2 assert len(list((datadir / 'plugins').iterdir())) == 2 hook_caller = hm.get_hook_caller(ignored_plugins=['Simple Plugin 2']) env_temperature = hook_caller.env_temperature() # Plugin2 implements the Hook env_temperature assert env_temperature is None
def test_plugins_available(simple_plugin, simple_plugin_2): plugin_dirs = [simple_plugin["path"], simple_plugin_2["path"]] hm = HookMan(specs=simple_plugin["specs"], plugin_dirs=plugin_dirs) plugins = hm.get_plugins_available() assert len(plugins) == 2 import attr assert list(attr.asdict(plugins[0]).keys()) == [ "yaml_location", "hooks_available", "author", "description", "email", "hooks_implemented", "caption", "shared_lib_name", "shared_lib_path", "version", ] plugins = hm.get_plugins_available(ignored_plugins=["simple_plugin_2"]) assert len(plugins) == 1
def test_get_hook_caller_passing_ignored_plugins(datadir, simple_plugin, simple_plugin_2): plugins_dirs = [simple_plugin["path"], simple_plugin_2["path"]] hm = HookMan(specs=simple_plugin["specs"], plugin_dirs=plugins_dirs) assert len(hm.get_plugins_available()) == 2 assert len(list((datadir / "plugins").iterdir())) == 2 hook_caller = hm.get_hook_caller(ignored_plugins=["simple_plugin_2"]) env_temperatures = hook_caller.env_temperature_impls() # Plugin2 implements the Hook env_temperature assert len(env_temperatures) == 0
def test_get_status(datadir, simple_plugin, simple_plugin_2): plugins_dirs = [simple_plugin['path'], simple_plugin_2['path']] hm = HookMan(specs=simple_plugin['specs'], plugin_dirs=plugins_dirs) assert len(hm.get_plugins_available()) == 2 plugin_status = hm.get_status() assert plugin_status[0].plugins == ['Simple Plugin', 'Simple Plugin 2'] assert plugin_status[0].hook == 'friction_factor' plugin_status = hm.get_status(ignored_plugins=['Simple Plugin 2']) assert not plugin_status