mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-10 16:52:15 -06:00
64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
"""Test audio plugin container."""
|
|
|
|
from ipaddress import IPv4Address
|
|
from pathlib import Path
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
import pytest
|
|
|
|
from supervisor.coresys import CoreSys
|
|
from supervisor.docker.const import DockerMount, MountType, Ulimit
|
|
from supervisor.docker.manager import DockerAPI
|
|
|
|
from . import DEV_MOUNT
|
|
|
|
|
|
@pytest.mark.usefixtures("path_extern")
|
|
async def test_start(coresys: CoreSys, tmp_supervisor_data: Path, container: MagicMock):
|
|
"""Test starting audio plugin."""
|
|
config_file = tmp_supervisor_data / "audio" / "pulse_audio.json"
|
|
assert not config_file.exists()
|
|
|
|
with patch.object(DockerAPI, "run", return_value=container.attrs) as run:
|
|
await coresys.plugins.audio.start()
|
|
|
|
run.assert_called_once()
|
|
assert run.call_args.kwargs["ipv4"] == IPv4Address("172.30.32.4")
|
|
assert run.call_args.kwargs["name"] == "hassio_audio"
|
|
assert run.call_args.kwargs["hostname"] == "hassio-audio"
|
|
assert run.call_args.kwargs["cap_add"] == ["SYS_NICE", "SYS_RESOURCE"]
|
|
assert run.call_args.kwargs["ulimits"] == [
|
|
Ulimit(name="rtprio", soft=10, hard=10)
|
|
]
|
|
|
|
assert run.call_args.kwargs["mounts"] == [
|
|
DEV_MOUNT,
|
|
DockerMount(
|
|
type=MountType.BIND,
|
|
source=coresys.config.path_extern_audio.as_posix(),
|
|
target="/data",
|
|
read_only=False,
|
|
),
|
|
DockerMount(
|
|
type=MountType.BIND,
|
|
source="/run/dbus",
|
|
target="/run/dbus",
|
|
read_only=True,
|
|
),
|
|
DockerMount(
|
|
type=MountType.BIND,
|
|
source="/run/udev",
|
|
target="/run/udev",
|
|
read_only=True,
|
|
),
|
|
DockerMount(
|
|
type=MountType.BIND,
|
|
source="/etc/machine-id",
|
|
target="/etc/machine-id",
|
|
read_only=True,
|
|
),
|
|
]
|
|
assert "volumes" not in run.call_args.kwargs
|
|
|
|
assert config_file.exists()
|