"""媒体库分组、路径边界与配置往返。""" import sqlite3 import tomllib import unittest from dataclasses import replace from pathlib import Path from uuid import uuid4 from tempfile import TemporaryDirectory from types import SimpleNamespace from peach import media_configuration, media_identity, media_libraries, settings_file class MediaLibraryTests(unittest.TestCase): def config(self): return SimpleNamespace(locations={"local": ("R:\\Media", "S:\\Other")}, library_names={"R:\\Media": "电影", "S:\\Other": "电影"}) def test_named_roots_share_one_library(self): rows = media_libraries.libraries(self.config()) self.assertEqual(len(rows), 1) self.assertEqual(len(rows[0]["roots"]), 2) def test_library_icons_follow_source_or_explicit_selection(self): config = self.config() config.locations = {"pikpak": ("A:\\",)} self.assertEqual(media_libraries.libraries(config)[0]["icon"], "pikpak") config.library_icons = {"A:\\": "heart"} self.assertEqual(media_libraries.libraries(config)[0]["icon"], "heart") config.library_icons = {"A:\\": "