From 7017c14ba6d7c48a1356e507de045a23c8bc4909 Mon Sep 17 00:00:00 2001 From: vzhestkov Date: Thu, 9 May 2024 09:56:34 +0200 Subject: [PATCH] Add test for getting matchers from __context__ in matchers.confirm_top --- tests/pytests/unit/matchers/test_confirm_top.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/pytests/unit/matchers/test_confirm_top.py b/tests/pytests/unit/matchers/test_confirm_top.py index 514df323b69..f439fcf94ad 100644 --- a/tests/pytests/unit/matchers/test_confirm_top.py +++ b/tests/pytests/unit/matchers/test_confirm_top.py @@ -2,6 +2,7 @@ import pytest import salt.config import salt.loader +from tests.support.mock import patch @pytest.fixture @@ -12,3 +13,17 @@ def matchers(minion_opts): def test_sanity(matchers): match = matchers["confirm_top.confirm_top"] assert match("*", []) is True + + +@pytest.mark.parametrize("in_context", [False, True]) +def test_matchers_from_context(matchers, in_context): + match = matchers["confirm_top.confirm_top"] + with patch.dict( + matchers.pack["__context__"], {"matchers": matchers} if in_context else {} + ), patch("salt.loader.matchers", return_value=matchers) as loader_matchers: + assert match("*", []) is True + assert id(matchers.pack["__context__"]["matchers"]) == id(matchers) + if in_context: + loader_matchers.assert_not_called() + else: + loader_matchers.assert_called_once()