"""Test audio plugin.""" from pathlib import Path from unittest.mock import AsyncMock, Mock, patch import pytest from supervisor.const import LogLevel from supervisor.coresys import CoreSys from tests.plugins.test_dns import fixture_docker_interface # noqa: F401 @pytest.fixture(name="write_json") async def fixture_write_json() -> Mock: """Mock json file writer.""" with patch("supervisor.plugins.audio.write_json_file") as write_json_file: yield write_json_file async def test_config_write( coresys: CoreSys, docker_interface: tuple[AsyncMock, AsyncMock], write_json: Mock, ): """Test config write on audio start and restart.""" await coresys.plugins.audio.start() docker_interface[0].assert_called_once() docker_interface[1].assert_not_called() write_json.assert_called_once_with( Path("/data/audio/pulse_audio.json"), { "debug": False, }, ) docker_interface[0].reset_mock() write_json.reset_mock() coresys.config.logging = LogLevel.DEBUG await coresys.plugins.audio.restart() docker_interface[0].assert_not_called() docker_interface[1].assert_called_once() write_json.assert_called_once_with( Path("/data/audio/pulse_audio.json"), { "debug": True, }, )