mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
test(routes): cover snake case model id payload
This commit is contained in:
@@ -210,15 +210,33 @@ class ModelUpdateService:
|
||||
metadata_provider,
|
||||
*,
|
||||
force_refresh: bool = False,
|
||||
target_model_ids: Optional[Sequence[int]] = None,
|
||||
) -> Dict[int, ModelUpdateRecord]:
|
||||
"""Refresh update information for every model present in the cache."""
|
||||
|
||||
local_versions = await self._collect_local_versions(scanner)
|
||||
normalized_targets = (
|
||||
self._normalize_sequence(target_model_ids)
|
||||
if target_model_ids is not None
|
||||
else []
|
||||
)
|
||||
target_filter = normalized_targets or None
|
||||
|
||||
local_versions = await self._collect_local_versions(
|
||||
scanner,
|
||||
target_model_ids=target_filter,
|
||||
)
|
||||
total_models = len(local_versions)
|
||||
if total_models == 0:
|
||||
logger.info(
|
||||
"No %s models found while refreshing update metadata", model_type
|
||||
)
|
||||
if target_filter:
|
||||
logger.info(
|
||||
"No %s models matched requested ids %s while refreshing update metadata",
|
||||
model_type,
|
||||
target_filter,
|
||||
)
|
||||
else:
|
||||
logger.info(
|
||||
"No %s models found while refreshing update metadata", model_type
|
||||
)
|
||||
return {}
|
||||
|
||||
logger.info(
|
||||
@@ -616,12 +634,23 @@ class ModelUpdateService:
|
||||
)
|
||||
return aggregated
|
||||
|
||||
async def _collect_local_versions(self, scanner) -> Dict[int, List[int]]:
|
||||
async def _collect_local_versions(
|
||||
self,
|
||||
scanner,
|
||||
*,
|
||||
target_model_ids: Optional[Sequence[int]] = None,
|
||||
) -> Dict[int, List[int]]:
|
||||
cache = await scanner.get_cached_data()
|
||||
mapping: Dict[int, set[int]] = {}
|
||||
if not cache or not getattr(cache, "raw_data", None):
|
||||
return {}
|
||||
|
||||
target_set = None
|
||||
if target_model_ids:
|
||||
target_set = set(target_model_ids)
|
||||
if not target_set:
|
||||
return {}
|
||||
|
||||
for item in cache.raw_data:
|
||||
civitai = item.get("civitai") if isinstance(item, dict) else None
|
||||
if not isinstance(civitai, dict):
|
||||
@@ -630,6 +659,8 @@ class ModelUpdateService:
|
||||
version_id = self._normalize_int(civitai.get("id"))
|
||||
if model_id is None or version_id is None:
|
||||
continue
|
||||
if target_set is not None and model_id not in target_set:
|
||||
continue
|
||||
mapping.setdefault(model_id, set()).add(version_id)
|
||||
|
||||
return {model_id: sorted(ids) for model_id, ids in mapping.items()}
|
||||
|
||||
Reference in New Issue
Block a user