1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # -*- coding: utf-8 -*-
- # Import python libs
- from __future__ import absolute_import, print_function, unicode_literals
- import os
- # Import Salt Testing libs
- from tests.support.mixins import LoaderModuleMockMixin
- from tests.support.unit import TestCase, skipIf
- from tests.support.mock import NO_MOCK, NO_MOCK_REASON
- # Import Salt Libs
- import salt.pillar.saltclass as saltclass
- base_path = os.path.dirname(os.path.realpath(__file__))
- fake_minion_id = 'fake_id'
- fake_pillar = {}
- fake_args = ({'path': os.path.abspath(
- os.path.join(base_path, '..', '..', 'integration',
- 'files', 'saltclass', 'examples'))})
- fake_opts = {}
- fake_salt = {}
- fake_grains = {}
- @skipIf(NO_MOCK, NO_MOCK_REASON)
- class SaltclassPillarTestCase(TestCase, LoaderModuleMockMixin):
- '''
- Tests for salt.pillar.saltclass
- '''
- def setup_loader_modules(self):
- return {saltclass: {'__opts__': fake_opts,
- '__salt__': fake_salt,
- '__grains__': fake_grains}}
- def _runner(self, expected_ret):
- try:
- full_ret = saltclass.ext_pillar(fake_minion_id, fake_pillar, fake_args)
- parsed_ret = full_ret['__saltclass__']['classes']
- # Fail the test if we hit our NoneType error
- except TypeError as err:
- self.fail(err)
- # Else give the parsed content result
- self.assertListEqual(parsed_ret, expected_ret)
- def test_succeeds(self):
- ret = ['default.users', 'default.motd', 'default.empty', 'default', 'roles.app']
- self._runner(ret)
- @skipIf(NO_MOCK, NO_MOCK_REASON)
- class SaltclassPillarTestCaseListExpansion(TestCase, LoaderModuleMockMixin):
- '''
- Tests for salt.pillar.saltclass variable expansion in list
- '''
- def setup_loader_modules(self):
- return {saltclass: {'__opts__': fake_opts,
- '__salt__': fake_salt,
- '__grains__': fake_grains
- }}
- def _runner(self, expected_ret):
- full_ret = {}
- parsed_ret = []
- try:
- full_ret = saltclass.ext_pillar(fake_minion_id, fake_pillar, fake_args)
- parsed_ret = full_ret['test_list']
- # Fail the test if we hit our NoneType error
- except TypeError as err:
- self.fail(err)
- # Else give the parsed content result
- self.assertListEqual(parsed_ret, expected_ret)
- def test_succeeds(self):
- ret = [{'a': '192.168.10.10'}, '192.168.10.20']
- self._runner(ret)
|