1
0
mirror of https://github.com/home-assistant/supervisor.git synced 2026-02-15 07:27:13 +00:00
Files
supervisor/tests/resolution/fixup/test_plugin_execute_rebuild.py
Mike Degatano d23bc291d5 Migrate create container to aiodocker (#6415)
* Migrate create container to aiodocker

* Fix extra hosts transformation

* Env not Environment

* Fix tests

* Fixes from feedback

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2025-12-15 09:57:30 +01:00

49 lines
1.4 KiB
Python

"""Test fixup plugin execute rebuild."""
from unittest.mock import MagicMock, patch
import pytest
from supervisor.coresys import CoreSys
from supervisor.docker.manager import DockerAPI
from supervisor.plugins.audio import PluginAudio
from supervisor.resolution.const import ContextType, IssueType, SuggestionType
from supervisor.resolution.fixups.plugin_execute_rebuild import (
FixupPluginExecuteRebuild,
)
def make_mock_container_get(status: str):
"""Make mock of container get."""
out = MagicMock()
out.status = status
out.attrs = {"State": {"ExitCode": 0}, "Mounts": []}
def mock_container_get(name):
return out
return mock_container_get
@pytest.mark.parametrize("status", ["running", "stopped"])
async def test_fixup(docker: DockerAPI, coresys: CoreSys, status: str):
"""Test fixup rebuilds plugin's container regardless of current state."""
docker.containers_legacy.get = make_mock_container_get(status)
plugin_execute_rebuild = FixupPluginExecuteRebuild(coresys)
assert plugin_execute_rebuild.auto is True
coresys.resolution.create_issue(
IssueType.DOCKER_CONFIG,
ContextType.PLUGIN,
reference="audio",
suggestions=[SuggestionType.EXECUTE_REBUILD],
)
with patch.object(PluginAudio, "rebuild") as rebuild:
await plugin_execute_rebuild()
rebuild.assert_called_once()
assert not coresys.resolution.issues
assert not coresys.resolution.suggestions