supervisor/tests/plugins/test_audio.py
2022-07-27 17:15:54 +02:00

51 lines
1.3 KiB
Python

"""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,
},
)