Files
ComfyUI-Lora-Manager/tests/services/test_relative_path_search.py
Will Miao ca6bb43406 feat: remove path separator normalization for cross-platform compatibility
Removed the forced normalization of path separators to forward slashes in BaseModelService to maintain platform-specific separators. Updated test cases to use os.sep for constructing expected paths, ensuring tests work correctly across different operating systems while preserving native path representations.
2025-12-17 19:07:08 +08:00

65 lines
1.8 KiB
Python

import os
import pytest
from py.services.base_model_service import BaseModelService
from py.utils.models import BaseModelMetadata
class DummyService(BaseModelService):
async def format_response(self, model_data):
return model_data
class FakeCache:
def __init__(self, raw_data):
self.raw_data = list(raw_data)
class FakeScanner:
def __init__(self, raw_data, roots):
self._cache = FakeCache(raw_data)
self._roots = list(roots)
async def get_cached_data(self, *_args, **_kwargs):
return self._cache
def get_model_roots(self):
return list(self._roots)
@pytest.mark.asyncio
async def test_search_relative_paths_supports_multiple_tokens():
scanner = FakeScanner(
[
{"file_path": "/models/flux/detail-model.safetensors"},
{"file_path": "/models/flux/only-flux.safetensors"},
{"file_path": "/models/detail/flux-trained.safetensors"},
{"file_path": "/models/detail/standalone.safetensors"},
],
["/models"],
)
service = DummyService("stub", scanner, BaseModelMetadata)
matching = await service.search_relative_paths("flux detail")
assert matching == [
f"flux{os.sep}detail-model.safetensors",
f"detail{os.sep}flux-trained.safetensors",
]
@pytest.mark.asyncio
async def test_search_relative_paths_excludes_tokens():
scanner = FakeScanner(
[
{"file_path": "/models/flux/detail-model.safetensors"},
{"file_path": "/models/flux/keep-me.safetensors"},
],
["/models"],
)
service = DummyService("stub", scanner, BaseModelMetadata)
matching = await service.search_relative_paths("flux -detail")
assert matching == [f"flux{os.sep}keep-me.safetensors"]