"""Test fixup system execute rebuild.""" from unittest.mock import patch from supervisor.coresys import CoreSys from supervisor.resolution.const import ContextType, IssueType, SuggestionType from supervisor.resolution.fixups.addon_execute_rebuild import FixupAddonExecuteRebuild from supervisor.resolution.fixups.core_execute_rebuild import FixupCoreExecuteRebuild from supervisor.resolution.fixups.plugin_execute_rebuild import ( FixupPluginExecuteRebuild, ) from supervisor.resolution.fixups.system_execute_rebuild import ( FixupSystemExecuteRebuild, ) async def test_fixup(coresys: CoreSys): """Test fixup applies other rebuild fixups for docker config issues.""" system_execute_rebuild = FixupSystemExecuteRebuild(coresys) assert system_execute_rebuild.auto is False coresys.resolution.create_issue( IssueType.DOCKER_CONFIG, ContextType.ADDON, reference="local_ssh", suggestions=[SuggestionType.EXECUTE_REBUILD], ) coresys.resolution.create_issue( IssueType.DOCKER_CONFIG, ContextType.CORE, suggestions=[SuggestionType.EXECUTE_REBUILD], ) coresys.resolution.create_issue( IssueType.DOCKER_CONFIG, ContextType.PLUGIN, reference="audio", suggestions=[SuggestionType.EXECUTE_REBUILD], ) coresys.resolution.create_issue( IssueType.DOCKER_CONFIG, ContextType.SYSTEM, suggestions=[SuggestionType.EXECUTE_REBUILD], ) with ( patch.object(FixupAddonExecuteRebuild, "process_fixup") as addon_fixup, patch.object(FixupCoreExecuteRebuild, "process_fixup") as core_fixup, patch.object(FixupPluginExecuteRebuild, "process_fixup") as plugin_fixup, ): await system_execute_rebuild() addon_fixup.assert_called_once_with(reference="local_ssh") core_fixup.assert_called_once() plugin_fixup.assert_called_once_with(reference="audio") assert not coresys.resolution.issues assert not coresys.resolution.suggestions