/
/
/
1"""Shared fixtures for Audiobookshelf provider tests."""
2
3from __future__ import annotations
4
5from unittest.mock import Mock
6
7import pytest
8
9from music_assistant.providers.audiobookshelf import SUPPORTED_FEATURES, Audiobookshelf
10from music_assistant.providers.audiobookshelf.helpers import LibraryHelper
11
12
13@pytest.fixture
14def provider() -> Audiobookshelf:
15 """Create a real Audiobookshelf provider with mocked dependencies."""
16 mass = Mock()
17 manifest = Mock()
18 manifest.domain = "audiobookshelf"
19 config = Mock()
20 config.instance_id = "audiobookshelf--test123"
21 config.name = "Audiobookshelf Test"
22 config.enabled = True
23 config.get_value.side_effect = lambda key, default=None: {
24 "log_level": "GLOBAL",
25 }.get(key, default)
26 provider = Audiobookshelf(mass, manifest, config, SUPPORTED_FEATURES)
27 provider.libraries.audiobooks["lib1"] = LibraryHelper(name="Audiobooks")
28 provider._client = Mock()
29 return provider
30