mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-25 15:15:44 -03:00
feat(preview): respect blur mature content setting
This commit is contained in:
@@ -3,6 +3,7 @@ from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
from py.services import preview_asset_service
|
||||
from py.services.preview_asset_service import PreviewAssetService
|
||||
|
||||
|
||||
@@ -180,3 +181,68 @@ async def test_ensure_preview_rewrites_civitai_video(tmp_path):
|
||||
assert preview_path.exists()
|
||||
assert preview_path.suffix == ".mp4"
|
||||
assert local_metadata["preview_nsfw_level"] == 2
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_ensure_preview_respects_blur_setting(monkeypatch, tmp_path):
|
||||
metadata_path = tmp_path / "model.metadata.json"
|
||||
metadata_path.write_text("{}")
|
||||
local_metadata: dict[str, Any] = {}
|
||||
|
||||
class Downloader:
|
||||
def __init__(self):
|
||||
self.file_calls: list[tuple[str, str]] = []
|
||||
|
||||
async def download_file(self, url, path, use_auth=False):
|
||||
self.file_calls.append((url, path))
|
||||
Path(path).write_bytes(b"image-data")
|
||||
return True, None
|
||||
|
||||
async def download_to_memory(self, *_args, **_kwargs):
|
||||
pytest.fail("download_to_memory should not be used when download_file succeeds")
|
||||
|
||||
downloader = Downloader()
|
||||
|
||||
async def downloader_factory():
|
||||
return downloader
|
||||
|
||||
class StubSettingsManager:
|
||||
def __init__(self, blur: bool) -> None:
|
||||
self.blur = blur
|
||||
|
||||
def get(self, key: str, default=None):
|
||||
if key == "blur_mature_content":
|
||||
return self.blur
|
||||
return default
|
||||
|
||||
monkeypatch.setattr(
|
||||
preview_asset_service,
|
||||
"get_settings_manager",
|
||||
lambda: StubSettingsManager(True),
|
||||
)
|
||||
|
||||
service = PreviewAssetService(
|
||||
metadata_manager=StubMetadataManager(),
|
||||
downloader_factory=downloader_factory,
|
||||
exif_utils=RecordingExifUtils(),
|
||||
)
|
||||
|
||||
images = [
|
||||
{
|
||||
"url": "https://image.civitai.com/container/example/original=true/nsfw.jpeg",
|
||||
"type": "image",
|
||||
"nsfwLevel": 8,
|
||||
},
|
||||
{
|
||||
"url": "https://image.civitai.com/container/example/original=true/safe.jpeg",
|
||||
"type": "image",
|
||||
"nsfwLevel": 1,
|
||||
},
|
||||
]
|
||||
|
||||
await service.ensure_preview_for_metadata(str(metadata_path), local_metadata, images)
|
||||
|
||||
assert len(downloader.file_calls) == 1
|
||||
requested_url = downloader.file_calls[0][0]
|
||||
assert "safe.jpeg" in requested_url
|
||||
assert local_metadata["preview_nsfw_level"] == 1
|
||||
|
||||
Reference in New Issue
Block a user