# -*- coding: utf-8 -*- ''' unit tests for the cache runner ''' # Import Python Libs from __future__ import absolute_import # Import Salt Testing Libs from salttesting import skipIf, TestCase from salttesting.helpers import ensure_in_syspath from salttesting.mock import ( NO_MOCK, NO_MOCK_REASON, patch ) ensure_in_syspath('../../') # Import Salt Libs from salt.runners import cache import salt.utils cache.__opts__ = {} cache.__salt__ = {} @skipIf(NO_MOCK, NO_MOCK_REASON) class CacheTest(TestCase): ''' Validate the cache runner ''' def test_grains(self): ''' test cache.grains runner ''' mock_minion = ['Larry'] mock_ret = {} self.assertEqual(cache.grains(minion=mock_minion), mock_ret) mock_data = 'grain stuff' mock_outputter = 'deprecated' class MockMaster(object): def __init__(self, *args, **kwargs): pass def get_minion_grains(self): return mock_data mock_ret = {'outputter': mock_outputter, 'data': mock_data} with patch.object(salt.utils.master, 'MasterPillarUtil', MockMaster): self.assertEqual(cache.grains(outputter=mock_outputter), mock_ret) mock_outputter = None with patch.object(salt.utils.master, 'MasterPillarUtil', MockMaster): self.assertEqual(cache.grains(outputter=mock_outputter), mock_data) if __name__ == '__main__': from integration import run_tests run_tests(CacheTest, needs_daemon=False)