mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-09 10:16:29 +00:00
Handle multiple suggestions with different references (#3817)
This commit is contained in:
parent
d5f9fcfdc7
commit
32d65722e9
@ -70,4 +70,4 @@ class ResolutionFixup(CoreSysAttributes):
|
|||||||
async def apply_fixup(self, suggestion: Suggestion) -> None:
|
async def apply_fixup(self, suggestion: Suggestion) -> None:
|
||||||
"""Apply a fixup for a suggestion."""
|
"""Apply a fixup for a suggestion."""
|
||||||
for fix in self.fixes_for_suggestion(suggestion):
|
for fix in self.fixes_for_suggestion(suggestion):
|
||||||
await fix()
|
await fix(suggestion)
|
||||||
|
@ -17,10 +17,13 @@ class FixupBase(ABC, CoreSysAttributes):
|
|||||||
"""Initialize the fixup class."""
|
"""Initialize the fixup class."""
|
||||||
self.coresys = coresys
|
self.coresys = coresys
|
||||||
|
|
||||||
async def __call__(self) -> None:
|
async def __call__(self, fixing_suggestion: Suggestion | None = None) -> None:
|
||||||
"""Execute the evaluation."""
|
"""Execute the evaluation."""
|
||||||
|
if not fixing_suggestion:
|
||||||
# Get suggestion to fix
|
# Get suggestion to fix
|
||||||
fixing_suggestion: Suggestion | None = next(iter(self.all_suggestions), None)
|
fixing_suggestion: Suggestion | None = next(
|
||||||
|
iter(self.all_suggestions), None
|
||||||
|
)
|
||||||
|
|
||||||
# No suggestion
|
# No suggestion
|
||||||
if fixing_suggestion is None:
|
if fixing_suggestion is None:
|
||||||
|
@ -220,3 +220,22 @@ async def test_events_on_issue_changes(coresys: CoreSys):
|
|||||||
|
|
||||||
change_handler.assert_not_called()
|
change_handler.assert_not_called()
|
||||||
remove_handler.assert_called_once_with(issue)
|
remove_handler.assert_called_once_with(issue)
|
||||||
|
|
||||||
|
|
||||||
|
async def test_resolution_apply_suggestion_multiple_copies(coresys: CoreSys):
|
||||||
|
"""Test resolution manager applies correct suggestion when has multiple that differ by reference."""
|
||||||
|
coresys.resolution.suggestions = remove_store_1 = Suggestion(
|
||||||
|
SuggestionType.EXECUTE_REMOVE, ContextType.STORE, "repo_1"
|
||||||
|
)
|
||||||
|
coresys.resolution.suggestions = remove_store_2 = Suggestion(
|
||||||
|
SuggestionType.EXECUTE_REMOVE, ContextType.STORE, "repo_2"
|
||||||
|
)
|
||||||
|
coresys.resolution.suggestions = remove_store_3 = Suggestion(
|
||||||
|
SuggestionType.EXECUTE_REMOVE, ContextType.STORE, "repo_3"
|
||||||
|
)
|
||||||
|
|
||||||
|
await coresys.resolution.apply_suggestion(remove_store_2)
|
||||||
|
|
||||||
|
assert remove_store_1 in coresys.resolution.suggestions
|
||||||
|
assert remove_store_2 not in coresys.resolution.suggestions
|
||||||
|
assert remove_store_3 in coresys.resolution.suggestions
|
||||||
|
Loading…
x
Reference in New Issue
Block a user