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:
|
||||
"""Apply a fixup for a 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."""
|
||||
self.coresys = coresys
|
||||
|
||||
async def __call__(self) -> None:
|
||||
async def __call__(self, fixing_suggestion: Suggestion | None = None) -> None:
|
||||
"""Execute the evaluation."""
|
||||
# Get suggestion to fix
|
||||
fixing_suggestion: Suggestion | None = next(iter(self.all_suggestions), None)
|
||||
if not fixing_suggestion:
|
||||
# Get suggestion to fix
|
||||
fixing_suggestion: Suggestion | None = next(
|
||||
iter(self.all_suggestions), None
|
||||
)
|
||||
|
||||
# No suggestion
|
||||
if fixing_suggestion is None:
|
||||
|
|
|
@ -220,3 +220,22 @@ async def test_events_on_issue_changes(coresys: CoreSys):
|
|||
|
||||
change_handler.assert_not_called()
|
||||
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…
Reference in New Issue