API: add performance constraints

This commit is contained in:
Johannes Kirschbauer
2024-07-02 12:07:33 +02:00
parent 6cf0cc491e
commit 9307ca68eb
3 changed files with 36 additions and 26 deletions

View File

@@ -1,27 +1,23 @@
import time
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
st = time.time()
modules_info = list_modules(base_path)
et = time.time()
elapsed = et - st
# Listing should take less than a second
assert elapsed < 1
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()