diff --git a/tackle/providers/logic/hooks/match.py b/tackle/providers/logic/hooks/match.py index 91d2fcbff..c722b6e74 100644 --- a/tackle/providers/logic/hooks/match.py +++ b/tackle/providers/logic/hooks/match.py @@ -74,7 +74,11 @@ def exec(self) -> Union[dict, list]: context=self, ) from None - raise Exception(f"Value `{self.value}` not found in {self.case.keys()}") + raise HookCallException( + f"Value `{self.value}` not found in " + f"{' ,'.join([i for i in list(self.case)])}", + context=self, + ) from None def run_key(self, value): self.skip_output: bool = True diff --git a/tackle/providers/logic/tests/match/non-existant-key.yaml b/tackle/providers/logic/tests/match/non-existant-key.yaml new file mode 100644 index 000000000..7a8ab17ee --- /dev/null +++ b/tackle/providers/logic/tests/match/non-existant-key.yaml @@ -0,0 +1,8 @@ + + +foo: bar + +error: + ->: match foo + case: + baz: biz diff --git a/tackle/providers/logic/tests/match/test_provider_logic_match.py b/tackle/providers/logic/tests/match/test_provider_logic_match.py index 871601eef..ce002ff44 100644 --- a/tackle/providers/logic/tests/match/test_provider_logic_match.py +++ b/tackle/providers/logic/tests/match/test_provider_logic_match.py @@ -60,3 +60,8 @@ def test_hook_match_value_wrong_hook_type(change_dir): """ with pytest.raises(HookCallException): tackle('wrong-hook-type.yaml') + + +def test_hook_match_non_existant_key(change_dir): + with pytest.raises(HookCallException): + tackle('non-existant-key.yaml')