soulsync/tests/media_server
Broque Thomas c1da56b2c2 A1: Pin PlexClient observable behavior
6 tests pin the Plex client surface the engine will dispatch
through after Phase B/C migrations:
- is_connected returns False on no-server, True on server-present
- is_fully_configured requires BOTH server AND music_library
- get_all_artists empty list on not-connected, iterates
  music_library.searchArtists() when connected
- get_all_album_ids returns a set of STRING ratingKey values
  (coerced from Plex ints so semantics match Jellyfin GUIDs +
  Navidrome string ids)

Phase A pinning catches behavior drift during web_server.py
dispatch-site migrations (Phase C) and engine adapter wiring
(Phase B).
2026-05-04 20:53:00 -07:00
..
__init__.py Phase 0: Add MediaServerClient contract + registry 2026-05-04 20:49:25 -07:00
test_conformance.py Phase 0: Add MediaServerClient contract + registry 2026-05-04 20:49:25 -07:00
test_plex_pinning.py A1: Pin PlexClient observable behavior 2026-05-04 20:53:00 -07:00