Files
MajoorWaldi-ComfyUI-Majoor-…/tests/features/test_collections_service.py
T
MajoorWaldi 459b12ac39 feat(viewer): add 3D model viewing support
- Implement basic 3D model thumbnail rendering with fallback icon
- Update viewer mode selection logic to handle 3D models
- Add checks for 3D model interactions in the viewer
- Extend drag & drop support to include 3D model assets
2026-03-16 23:47:08 +01:00

74 lines
2.4 KiB
Python

from pathlib import Path
from mjr_am_backend.features.collections import service as c
def test_collections_crud_and_add_remove(monkeypatch, tmp_path: Path):
monkeypatch.setattr(c, "_MAX_COLLECTION_ITEMS", 3)
monkeypatch.setattr(
c,
"_collection_path",
lambda cid: (tmp_path / f"{cid}.json") if c._safe_id(cid) else None,
)
svc = c.CollectionsService(base_dir=tmp_path)
created = svc.create("My Collection")
assert created.ok
cid = created.data["id"]
listed = svc.list()
assert listed.ok and listed.data
got = svc.get(cid)
assert got.ok and got.data["id"] == cid
add = svc.add_assets(
cid,
[
{"filepath": str(tmp_path / "a.png"), "filename": "a.png"},
{"filepath": str(tmp_path / "a.png"), "filename": "a.png"},
{"filepath": str(tmp_path / "b.png"), "filename": "b.png"},
{"filepath": str(tmp_path / "c.png"), "filename": "c.png"},
{"filepath": str(tmp_path / "d.png"), "filename": "d.png"},
],
)
assert add.ok
assert add.data["added"] >= 3
assert add.data["skipped_existing"] >= 1 or add.data["skipped_duplicate"] >= 1
rem = svc.remove_filepaths(cid, [str(tmp_path / "a.png")])
assert rem.ok and rem.data["removed"] >= 1
deleted = svc.delete(cid)
assert deleted.ok
missing = svc.get(cid)
assert missing.code == "NOT_FOUND"
def test_collections_invalid_inputs(tmp_path: Path):
svc = c.CollectionsService(base_dir=tmp_path)
assert not svc.create("").ok
assert svc.get("bad").code == "INVALID_INPUT"
assert svc.delete("bad").code == "INVALID_INPUT"
assert svc.add_assets("bad", []).code == "INVALID_INPUT"
assert svc.remove_filepaths("bad", []).code == "INVALID_INPUT"
def test_collections_user_scoped_base_dirs(tmp_path: Path):
svc1 = c.CollectionsService(base_dir=tmp_path, user_id="user-one")
svc2 = c.CollectionsService(base_dir=tmp_path, user_id="user-two")
created1 = svc1.create("One")
created2 = svc2.create("Two")
assert created1.ok and created2.ok
assert len(svc1.list().data or []) == 1
assert len(svc2.list().data or []) == 1
user_one_dir = c.collections_base_dir_for_user("user-one", base_dir=tmp_path)
user_two_dir = c.collections_base_dir_for_user("user-two", base_dir=tmp_path)
assert user_one_dir != user_two_dir
assert list(user_one_dir.glob("*.json"))
assert list(user_two_dir.glob("*.json"))