# -*- coding: utf-8 -*- ''' :codeauthor: :email:`Jayesh Kariya ` ''' # Import Python Libs from __future__ import absolute_import # Import Salt Testing Libs from salttesting import TestCase, skipIf from salttesting.mock import ( MagicMock, patch, NO_MOCK, NO_MOCK_REASON ) from salttesting.helpers import ensure_in_syspath ensure_in_syspath('../../') # Import Salt Libs from salt.modules import locate # Globals locate.__salt__ = {} @skipIf(NO_MOCK, NO_MOCK_REASON) class LocateTestCase(TestCase): ''' Test cases for salt.modules.locate ''' # 'version' function tests: 1 def test_version(self): ''' Test if it returns the version of locate ''' mock = MagicMock(return_value='mlocate 0.26') with patch.dict(locate.__salt__, {'cmd.run': mock}): self.assertListEqual(locate.version(), ['mlocate 0.26']) # 'stats' function tests: 1 def test_stats(self): ''' Test if it returns statistics about the locate database ''' ret = {'files': '75,253', 'directories': '49,252', 'bytes in file names': '93,214', 'bytes used to store database': '29,165', 'database': '/var/lib/mlocate/mlocate.db'} mock_ret = '''Database /var/lib/mlocate/mlocate.db: 49,252 directories 75,253 files 93,214 bytes in file names 29,165 bytes used to store database''' with patch.dict(locate.__salt__, {'cmd.run': MagicMock(return_value=mock_ret)}): self.assertDictEqual(locate.stats(), ret) # 'updatedb' function tests: 1 def test_updatedb(self): ''' Test if it updates the locate database ''' mock = MagicMock(return_value='') with patch.dict(locate.__salt__, {'cmd.run': mock}): self.assertListEqual(locate.updatedb(), []) # 'locate' function tests: 1 def test_locate(self): ''' Test if it performs a file lookup. ''' mock = MagicMock(return_value='') with patch.dict(locate.__salt__, {'cmd.run': mock}): self.assertListEqual(locate.locate('wholename', database='myfile'), []) if __name__ == '__main__': from integration import run_tests run_tests(LocateTestCase, needs_daemon=False)