1
0
forked from clan/clan-core

Merge pull request 'API: add performance constraints' (#1685) from hsjobeki/clan-core:hsjobeki-main into main

This commit is contained in:
clan-bot 2024-07-02 10:18:54 +00:00
commit c4bbdb2212
3 changed files with 20 additions and 26 deletions

View File

@ -104,21 +104,24 @@ def get_modules(base_path: str) -> dict[str, str]:
@API.register
def list_modules(base_path: str) -> list[str]:
def list_modules(base_path: str) -> dict[str, ModuleInfo]:
"""
Show information about a module
"""
modules = get_modules(base_path)
return [m for m in modules.keys()]
return {
module_name: get_module_info(module_name, module_path)
for module_name, module_path in modules.items()
}
@API.register
def show_module_info(base_path: str, module_name: str) -> ModuleInfo:
def get_module_info(
module_name: str,
module_path: str,
) -> ModuleInfo:
"""
Show information about a module
Retrieves information about a module
"""
modules = get_modules(base_path)
module_path = modules.get(module_name, None)
if not module_path:
raise ClanError(
"Module not found",

View File

@ -21,6 +21,7 @@ def test_schema_for_machine(test_flake_with_core: FlakeForTest) -> None:
@pytest.mark.with_core
def test_create_machine_on_minimal_clan(test_flake_minimal: FlakeForTest) -> None:
assert list_machines(test_flake_minimal.path) == {}
create_machine(
test_flake_minimal.path,
Machine(
@ -31,7 +32,9 @@ def test_create_machine_on_minimal_clan(test_flake_minimal: FlakeForTest) -> Non
icon=None,
),
)
assert list(list_machines(test_flake_minimal.path).keys()) == ["foo"]
result = list_machines(test_flake_minimal.path)
assert list(result.keys()) == ["foo"]
# Writes into settings.json
set_config_for_machine(

View File

@ -1,27 +1,15 @@
import pytest
from fixtures_flakes import FlakeForTest
from clan_cli.api.modules import list_modules, show_module_info
from clan_cli.api.modules import list_modules
@pytest.mark.with_core
def test_list_modules(test_flake_with_core: FlakeForTest) -> None:
base_path = test_flake_with_core.path
module_list = list_modules(base_path)
assert isinstance(module_list, list)
assert len(module_list) > 1
modules_info = list_modules(base_path)
assert len(modules_info.items()) > 1
# Random test for those two modules
assert "borgbackup" in module_list
assert "syncthing" in module_list
@pytest.mark.with_core
def test_modules_details(test_flake_with_core: FlakeForTest) -> None:
base_path = test_flake_with_core.path
test_module = "borgbackup"
module_info = show_module_info(base_path, test_module)
assert module_info.description is not None and module_info.description != ""
assert module_info.categories and "backup" in module_info.categories
assert module_info.roles
assert set(module_info.roles) == {"server", "client"}
assert module_info.readme is not None and module_info.readme != ""
assert "borgbackup" in modules_info.keys()
assert "syncthing" in modules_info.keys()