Files
Azornes-Comfyui-Model-Resolver/tests/test_route_context_contract.py
T

87 lines
2.7 KiB
Python

import pytest
from core.routes.context import RouteContext
from core.services.directory_service import DirectoryService
from core.services.download_service import DownloadService
from core.services.hash_service import HashService
from core.services.loaded_models_service import LoadedModelsService
from core.services.metadata_service import MetadataService
from core.services.scanner_service import ScannerService
from core.services.search_support_service import SearchSupportService
from core.services.workflow_service import WorkflowService
def test_route_context_remains_immutable_after_construction():
values = {"dependency": "original"}
context = RouteContext(values)
values["dependency"] = "changed"
assert context.get("dependency") == "original"
with pytest.raises(KeyError, match="Missing route dependency: absent"):
context.require("absent")
def test_scanner_service_requires_mandatory_route_dependencies():
with pytest.raises(KeyError, match="Missing route dependency: asyncio"):
ScannerService(RouteContext({}))
def test_directory_service_requires_mandatory_route_dependencies():
with pytest.raises(
KeyError,
match="Missing route dependency: TEMPLATE_KEY_ALIASES",
):
DirectoryService(RouteContext({}))
def test_workflow_service_requires_mandatory_route_dependencies():
extension = type(
"Extension",
(),
{
"analysis_progress": object(),
"_update_analysis_progress": object(),
"logger": object(),
},
)()
with pytest.raises(
KeyError,
match="Missing route dependency: analyze_and_find_matches",
):
WorkflowService(RouteContext({"self": extension}))
def test_loaded_models_service_requires_mandatory_route_dependencies():
with pytest.raises(
KeyError,
match="Missing route dependency: adapt_custom_node_loaded_model",
):
LoadedModelsService(RouteContext({}))
def test_metadata_service_requires_mandatory_route_dependencies():
with pytest.raises(KeyError, match="Missing route dependency: asyncio"):
MetadataService(RouteContext({}))
def test_hash_service_requires_mandatory_route_dependencies():
with pytest.raises(
KeyError,
match="Missing route dependency: FileManagerError",
):
HashService(RouteContext({}))
def test_download_service_requires_mandatory_route_dependencies():
with pytest.raises(
KeyError,
match="Missing route dependency: Aria2InstallError",
):
DownloadService(RouteContext({}))
def test_search_support_service_requires_mandatory_route_dependencies():
with pytest.raises(KeyError, match="Missing route dependency: asyncio"):
SearchSupportService(RouteContext({}))