mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
fix(model): align rename extension detection
This commit is contained in:
@@ -339,7 +339,7 @@ class ModelLifecycleService:
|
||||
return suffix
|
||||
|
||||
basename = os.path.basename(filename)
|
||||
dot_index = basename.find(".")
|
||||
dot_index = basename.rfind(".")
|
||||
if dot_index != -1:
|
||||
return basename[dot_index:]
|
||||
|
||||
|
||||
@@ -243,6 +243,48 @@ async def test_rename_model_preserves_extension(tmp_path: Path):
|
||||
assert payload["file_name"] == new_name
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_rename_model_with_dotted_basename(tmp_path: Path):
|
||||
old_name = "model.v1"
|
||||
old_extension = ".gguf"
|
||||
new_name = "renamed-model"
|
||||
|
||||
model_path = tmp_path / f"{old_name}{old_extension}"
|
||||
model_path.write_bytes(b"content")
|
||||
|
||||
metadata_path = tmp_path / f"{old_name}.metadata.json"
|
||||
metadata_payload = {
|
||||
"file_name": old_name,
|
||||
"file_path": model_path.as_posix(),
|
||||
}
|
||||
metadata_path.write_text(json.dumps(metadata_payload))
|
||||
|
||||
async def metadata_loader(path: str):
|
||||
with open(path, "r", encoding="utf-8") as handle:
|
||||
return json.load(handle)
|
||||
|
||||
scanner = DummyScanner()
|
||||
metadata_manager = PassthroughMetadataManager()
|
||||
service = ModelLifecycleService(
|
||||
scanner=scanner,
|
||||
metadata_manager=metadata_manager,
|
||||
metadata_loader=metadata_loader,
|
||||
)
|
||||
|
||||
result = await service.rename_model(
|
||||
file_path=model_path.as_posix(),
|
||||
new_file_name=new_name,
|
||||
)
|
||||
|
||||
expected_main = tmp_path / f"{new_name}{old_extension}"
|
||||
assert expected_main.exists()
|
||||
assert result["new_file_path"] == expected_main.as_posix()
|
||||
assert any(p.endswith(f"{new_name}{old_extension}") for p in result["renamed_files"])
|
||||
|
||||
saved_metadata = json.loads((tmp_path / f"{new_name}.metadata.json").read_text())
|
||||
assert saved_metadata["file_name"] == new_name
|
||||
assert saved_metadata["file_path"].endswith(f"{new_name}{old_extension}")
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_delete_model_removes_gguf_file(tmp_path: Path):
|
||||
model_path = tmp_path / "model.gguf"
|
||||
|
||||
Reference in New Issue
Block a user