mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-24 12:29:08 +00:00
Passing platform arg on image pull (#3465)
* Passing platform arg on image pull * Passing in addon arch to image pull * Move sys_arch above sys_plugins in setup * Default to supervisor arch * Cleanup from feedback
This commit is contained in:
52
tests/docker/test_interface.py
Normal file
52
tests/docker/test_interface.py
Normal file
@@ -0,0 +1,52 @@
|
||||
"""Test Docker interface."""
|
||||
from unittest.mock import Mock, PropertyMock, call, patch
|
||||
|
||||
from awesomeversion import AwesomeVersion
|
||||
import pytest
|
||||
|
||||
from supervisor.const import CpuArch
|
||||
from supervisor.coresys import CoreSys
|
||||
from supervisor.docker.interface import DockerInterface
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def mock_verify_content(coresys: CoreSys):
|
||||
"""Mock verify_content utility during tests."""
|
||||
with patch.object(
|
||||
coresys.security, "verify_content", return_value=None
|
||||
) as verify_content:
|
||||
yield verify_content
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"cpu_arch, platform",
|
||||
[
|
||||
(CpuArch.ARMV7, "linux/arm/v7"),
|
||||
(CpuArch.ARMHF, "linux/arm/v6"),
|
||||
(CpuArch.AARCH64, "linux/arm64"),
|
||||
(CpuArch.I386, "linux/386"),
|
||||
(CpuArch.AMD64, "linux/amd64"),
|
||||
],
|
||||
)
|
||||
async def test_docker_image_platform(coresys: CoreSys, cpu_arch: str, platform: str):
|
||||
"""Test platform set correctly from arch."""
|
||||
with patch.object(
|
||||
coresys.docker.images, "pull", return_value=Mock(id="test:1.2.3")
|
||||
) as pull:
|
||||
instance = DockerInterface(coresys)
|
||||
await instance.install(AwesomeVersion("1.2.3"), "test", arch=cpu_arch)
|
||||
assert pull.call_count == 1
|
||||
assert pull.call_args == call("test:1.2.3", platform=platform)
|
||||
|
||||
|
||||
async def test_docker_image_default_platform(coresys: CoreSys):
|
||||
"""Test platform set using supervisor arch when omitted."""
|
||||
with patch.object(
|
||||
type(coresys.supervisor), "arch", PropertyMock(return_value="i386")
|
||||
), patch.object(
|
||||
coresys.docker.images, "pull", return_value=Mock(id="test:1.2.3")
|
||||
) as pull:
|
||||
instance = DockerInterface(coresys)
|
||||
await instance.install(AwesomeVersion("1.2.3"), "test")
|
||||
assert pull.call_count == 1
|
||||
assert pull.call_args == call("test:1.2.3", platform="linux/386")
|
||||
Reference in New Issue
Block a user