123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # -*- coding: utf-8 -*-
- # Import python libs
- from __future__ import absolute_import, print_function, unicode_literals
- # Import Salt Libs
- import salt.pillar.nodegroups as nodegroups
- # Import Salt Testing libs
- from tests.support.mixins import LoaderModuleMockMixin
- from tests.support.mock import MagicMock, patch
- from tests.support.unit import TestCase
- fake_minion_id = "fake_id"
- fake_pillar = {}
- fake_nodegroups = {
- "groupA": fake_minion_id,
- "groupB": "another_minion_id",
- }
- fake_opts = {"cache": "localfs", "nodegroups": fake_nodegroups, "id": fake_minion_id}
- fake_pillar_name = "fake_pillar_name"
- def side_effect(group_sel, t):
- if group_sel.find(fake_minion_id) != -1:
- return {"minions": [fake_minion_id], "missing": []}
- return {"minions": ["another_minion_id"], "missing": []}
- class NodegroupsPillarTestCase(TestCase, LoaderModuleMockMixin):
- """
- Tests for salt.pillar.nodegroups
- """
- def setup_loader_modules(self):
- return {nodegroups: {"__opts__": fake_opts}}
- def _runner(self, expected_ret, pillar_name=None):
- with patch(
- "salt.utils.minions.CkMinions.check_minions",
- MagicMock(side_effect=side_effect),
- ):
- pillar_name = pillar_name or fake_pillar_name
- actual_ret = nodegroups.ext_pillar(
- fake_minion_id, fake_pillar, pillar_name=pillar_name
- )
- self.assertDictEqual(actual_ret, expected_ret)
- def test_succeeds(self):
- ret = {fake_pillar_name: ["groupA"]}
- self._runner(ret)
|