From 4b7faa44ada3fefc451268e14a61e717d8140fb7 Mon Sep 17 00:00:00 2001 From: Jayesh Date: Mon, 22 Dec 2014 17:32:24 +0530 Subject: [PATCH] adding kmod module unit tests --- tests/unit/modules/kmod_test.py | 114 ++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 tests/unit/modules/kmod_test.py diff --git a/tests/unit/modules/kmod_test.py b/tests/unit/modules/kmod_test.py new file mode 100644 index 0000000000..299ac4c8f1 --- /dev/null +++ b/tests/unit/modules/kmod_test.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +''' + :codeauthor: :email:`Jayesh Kariya ` +''' + +# Import Salt Testing Libs +from salttesting import TestCase +from salttesting.mock import MagicMock, patch + +# Import Salt Libs +from salt.modules import kmod + + +class KmodTestCase(TestCase): + ''' + TestCase for salt.modules.kmod + ''' + kmod.__grains__ = {} + kmod.__salt__ = {} + kmod.__context__ = {} + + # 'available' function tests: 1 + + @patch('salt.modules.kmod.available', MagicMock(return_value=['kvm'])) + def test_available(self): + ''' + Tests return a list of all available kernel modules + ''' + self.assertEqual(['kvm'], kmod.available()) + + # 'check_available' function tests: 1 + + def test_check_available(self): + ''' + Tests if the specified kernel module is available + ''' + self.assertTrue(kmod.check_available('kvm')) + + # 'lsmod' function tests: 1 + + def test_lsmod(self): + ''' + Tests return information about currently loaded modules + ''' + mock_ret = [{'size': 100, 'module': None, 'depcount': 10, 'deps': None}] + with patch('salt.modules.kmod.lsmod', MagicMock(return_value=mock_ret)): + mock_cmd = MagicMock(return_value=1) + with patch.dict(kmod.__salt__, {'cmd.run': mock_cmd}): + self.assertListEqual(mock_ret, kmod.lsmod()) + + # 'mod_list' function tests: 1 + + @patch('salt.modules.kmod._get_modules_conf', + MagicMock(return_value='/etc/modules')) + @patch('salt.modules.kmod._strip_module_name', + MagicMock(return_value='lp')) + @patch('os.path.exists', MagicMock(return_value=True)) + def test_mod_list(self): + ''' + Tests return a list of the loaded module names + ''' + self.assertListEqual(['lp'], kmod.mod_list(True)) + + mock_ret = [{'size': 100, 'module': None, 'depcount': 10, 'deps': None}] + with patch('salt.modules.kmod.lsmod', MagicMock(return_value=mock_ret)): + self.assertListEqual([None], kmod.mod_list(False)) + + # 'load' function tests: 1 + + @patch('salt.modules.kmod._set_persistent_module', + MagicMock(return_value=set(['lp']))) + def test_load(self): + ''' + Tests to loads specified kernel module. + ''' + mock_ret = [{'size': 100, 'module': None, 'depcount': 10, 'deps': None}] + with patch('salt.modules.kmod.lsmod', MagicMock(return_value=mock_ret)): + mock = MagicMock(return_value={'retcode': 0}) + with patch.dict(kmod.__salt__, {'cmd.run_all': mock}): + self.assertEqual(['lp'], kmod.load('lp', True)) + + mock = MagicMock(return_value={'retcode': 1}) + with patch.dict(kmod.__salt__, {'cmd.run_all': mock}): + self.assertEqual('Module abc not found', kmod.load('abc')) + + # 'is_loaded' function tests: 1 + + @patch('salt.modules.kmod.mod_list', MagicMock(return_value=set(['lp']))) + def test_is_loaded(self): + ''' + Tests if specified kernel module is loaded. + ''' + self.assertTrue(kmod.is_loaded('lp')) + + # 'remove' function tests: 1 + + @patch('salt.modules.kmod._remove_persistent_module', + MagicMock(return_value=set(['lp']))) + def test_remove(self): + ''' + Tests to remove the specified kernel module + ''' + mock_ret = [{'size': 100, 'module': None, 'depcount': 10, 'deps': None}] + with patch('salt.modules.kmod.lsmod', MagicMock(return_value=mock_ret)): + mock = MagicMock(return_value=0) + with patch.dict(kmod.__salt__, {'cmd.run_all': mock}): + self.assertEqual(['lp'], kmod.remove('lp', True)) + + self.assertEqual([], kmod.remove('lp')) + + +if __name__ == '__main__': + from integration import run_tests + run_tests(KmodTestCase, needs_daemon=False)