mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
feat: add update_available flag to model services
Add update_available field to checkpoint, embedding, and LoRA service response formatting. The flag indicates whether a model update is available and defaults to false when not specified. Include comprehensive tests to verify the update flag is properly included in formatted responses and defaults to false when not present in the payload.
This commit is contained in:
@@ -38,6 +38,7 @@ class CheckpointService(BaseModelService):
|
||||
"notes": checkpoint_data.get("notes", ""),
|
||||
"model_type": checkpoint_data.get("model_type", "checkpoint"),
|
||||
"favorite": checkpoint_data.get("favorite", False),
|
||||
"update_available": bool(checkpoint_data.get("update_available", False)),
|
||||
"civitai": self.filter_civitai_data(checkpoint_data.get("civitai", {}), minimal=True)
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ class EmbeddingService(BaseModelService):
|
||||
"notes": embedding_data.get("notes", ""),
|
||||
"model_type": embedding_data.get("model_type", "embedding"),
|
||||
"favorite": embedding_data.get("favorite", False),
|
||||
"update_available": bool(embedding_data.get("update_available", False)),
|
||||
"civitai": self.filter_civitai_data(embedding_data.get("civitai", {}), minimal=True)
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ class LoraService(BaseModelService):
|
||||
"usage_tips": lora_data.get("usage_tips", ""),
|
||||
"notes": lora_data.get("notes", ""),
|
||||
"favorite": lora_data.get("favorite", False),
|
||||
"update_available": bool(lora_data.get("update_available", False)),
|
||||
"civitai": self.filter_civitai_data(lora_data.get("civitai", {}), minimal=True)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import pytest
|
||||
|
||||
from py.services.base_model_service import BaseModelService
|
||||
from py.services.lora_service import LoraService
|
||||
from py.services.checkpoint_service import CheckpointService
|
||||
from py.services.embedding_service import EmbeddingService
|
||||
from py.services.model_query import (
|
||||
ModelCacheRepository,
|
||||
ModelFilterSet,
|
||||
@@ -455,3 +458,54 @@ async def test_get_paginated_data_annotates_update_flags_with_bulk_dedup():
|
||||
assert [item["update_available"] for item in response["items"]] == [True, True, False]
|
||||
assert response["total"] == 3
|
||||
assert response["total_pages"] == 1
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
"service_cls, extra_fields",
|
||||
[
|
||||
(LoraService, {"usage_tips": "tips"}),
|
||||
(CheckpointService, {"model_type": "checkpoint"}),
|
||||
(EmbeddingService, {"model_type": "embedding"}),
|
||||
],
|
||||
)
|
||||
async def test_format_response_includes_update_flag(service_cls, extra_fields):
|
||||
service = service_cls(scanner=object())
|
||||
payload = {
|
||||
"model_name": "Demo",
|
||||
"file_name": "demo.safetensors",
|
||||
"folder": "root",
|
||||
"file_path": "root/demo.safetensors",
|
||||
**extra_fields,
|
||||
}
|
||||
payload["update_available"] = True
|
||||
|
||||
formatted = await service.format_response(payload)
|
||||
|
||||
assert "update_available" in formatted
|
||||
assert formatted["update_available"] is True
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
"service_cls, extra_fields",
|
||||
[
|
||||
(LoraService, {"usage_tips": "tips"}),
|
||||
(CheckpointService, {"model_type": "checkpoint"}),
|
||||
(EmbeddingService, {"model_type": "embedding"}),
|
||||
],
|
||||
)
|
||||
async def test_format_response_defaults_update_flag_false(service_cls, extra_fields):
|
||||
service = service_cls(scanner=object())
|
||||
payload = {
|
||||
"model_name": "Demo",
|
||||
"file_name": "demo.safetensors",
|
||||
"folder": "root",
|
||||
"file_path": "root/demo.safetensors",
|
||||
**extra_fields,
|
||||
}
|
||||
|
||||
formatted = await service.format_response(payload)
|
||||
|
||||
assert "update_available" in formatted
|
||||
assert formatted["update_available"] is False
|
||||
|
||||
Reference in New Issue
Block a user