mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #20380 from rallytime/merge-20374
Merge #20374 with some fixes
This commit is contained in:
commit
ced4bfccf1
2 changed files with 384 additions and 0 deletions
204
tests/unit/modules/lvs_test.py
Normal file
204
tests/unit/modules/lvs_test.py
Normal file
|
@ -0,0 +1,204 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
:codeauthor: :email:`Rupesh Tare <rupesht@saltstack.com>`
|
||||
'''
|
||||
|
||||
# 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 lvs
|
||||
|
||||
# Globals
|
||||
lvs.__salt__ = {}
|
||||
|
||||
|
||||
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
||||
class LvsTestCase(TestCase):
|
||||
'''
|
||||
Test cases for salt.modules.lvs
|
||||
'''
|
||||
def test_add_service(self):
|
||||
'''
|
||||
Test for Add a virtual service.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.add_service(), 'stderr')
|
||||
|
||||
def test_edit_service(self):
|
||||
'''
|
||||
Test for Edit the virtual service.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.edit_service(), 'stderr')
|
||||
|
||||
def test_delete_service(self):
|
||||
'''
|
||||
Test for Delete the virtual service.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.delete_service(), 'stderr')
|
||||
|
||||
def test_add_server(self):
|
||||
'''
|
||||
Test for Add a real server to a virtual service.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.add_server(), 'stderr')
|
||||
|
||||
def test_edit_server(self):
|
||||
'''
|
||||
Test for Edit a real server to a virtual service.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.edit_server(), 'stderr')
|
||||
|
||||
def test_delete_server(self):
|
||||
'''
|
||||
Test for Delete the realserver from the virtual service.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.delete_server(), 'stderr')
|
||||
|
||||
def test_clear(self):
|
||||
'''
|
||||
Test for Clear the virtual server table
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.clear(), 'stderr')
|
||||
|
||||
def test_get_rules(self):
|
||||
'''
|
||||
Test for Get the virtual server rules
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run':
|
||||
MagicMock(return_value='A')}):
|
||||
self.assertEqual(lvs.get_rules(), 'A')
|
||||
|
||||
def test_list_(self):
|
||||
'''
|
||||
Test for List the virtual server table
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.list_('p', 's'), 'stderr')
|
||||
|
||||
def test_zero(self):
|
||||
'''
|
||||
Test for Zero the packet, byte and rate counters in a
|
||||
service or all services.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
self.assertEqual(lvs.zero('p', 's'), 'stderr')
|
||||
|
||||
def test_check_service(self):
|
||||
'''
|
||||
Test for Check the virtual service exists.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
with patch.object(lvs, 'get_rules', return_value='C'):
|
||||
self.assertEqual(lvs.check_service('p', 's'),
|
||||
'Error: service not exists')
|
||||
|
||||
def test_check_server(self):
|
||||
'''
|
||||
Test for Check the real server exists in the specified service.
|
||||
'''
|
||||
with patch.object(lvs, '__detect_os', return_value='C'):
|
||||
with patch.object(lvs, '_build_cmd', return_value='B'):
|
||||
with patch.dict(lvs.__salt__,
|
||||
{'cmd.run_all':
|
||||
MagicMock(return_value={'retcode':
|
||||
'ret',
|
||||
'stderr':
|
||||
'stderr'})}):
|
||||
with patch.object(lvs, 'get_rules', return_value='C'):
|
||||
self.assertEqual(lvs.check_server('p', 's'),
|
||||
'Error: server not exists')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from integration import run_tests
|
||||
run_tests(LvsTestCase, needs_daemon=False)
|
180
tests/unit/modules/match_test.py
Normal file
180
tests/unit/modules/match_test.py
Normal file
|
@ -0,0 +1,180 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
:codeauthor: :email:`Rupesh Tare <rupesht@saltstack.com>`
|
||||
'''
|
||||
|
||||
# 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 match
|
||||
import __builtin__
|
||||
|
||||
|
||||
# Globals
|
||||
match.__grains__ = {}
|
||||
match.__salt__ = {}
|
||||
match.__opts__ = {}
|
||||
match.__pillar__ = {}
|
||||
|
||||
|
||||
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
||||
class MatchTestCase(TestCase):
|
||||
'''
|
||||
Test cases for salt.modules.match
|
||||
'''
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_compound(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion ID matches the given compound target
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'compound_match', MagicMock()):
|
||||
self.assertTrue(match.compound('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.compound('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_ipcidr(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion matches the given ipcidr target
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'ipcidr_match', MagicMock()):
|
||||
self.assertTrue(match.ipcidr('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.ipcidr('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_pillar(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion matches the given pillar target.
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'pillar_match', MagicMock()):
|
||||
self.assertTrue(match.pillar('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.pillar('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_data(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion matches the given data target
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'data_match', MagicMock()):
|
||||
self.assertTrue(match.data('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.data('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_grain_pcre(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion matches the given grain_pcre target
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'grain_pcre_match', MagicMock()):
|
||||
self.assertTrue(match.grain_pcre('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.grain_pcre('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_grain(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion matches the given grain target
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'grain_match', MagicMock()):
|
||||
self.assertTrue(match.grain('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.grain('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_list_(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion ID matches the given list target
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'list_match', MagicMock()):
|
||||
self.assertTrue(match.list_('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.list_('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_pcre(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion ID matches the given pcre target
|
||||
'''
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
with patch.object(mock_matcher, 'pcre_match', MagicMock()):
|
||||
self.assertTrue(match.pcre('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
self.assertFalse(match.pcre('tgt'))
|
||||
|
||||
@patch('salt.minion.Matcher')
|
||||
def test_glob(self, mock_matcher):
|
||||
'''
|
||||
Test for Return True if the minion ID matches the given glob target
|
||||
'''
|
||||
with patch.dict(match.__grains__, {'id': 101}):
|
||||
|
||||
mock_matcher.side_effect = MagicMock()
|
||||
with patch.object(mock_matcher, 'glob_match', MagicMock()):
|
||||
self.assertTrue(match.glob('tgt'))
|
||||
|
||||
mock_matcher.side_effect = MagicMock(return_value='B')
|
||||
self.assertFalse(match.glob('tgt'))
|
||||
|
||||
def test_filter_by(self):
|
||||
'''
|
||||
Test for Return the first match in a dictionary of target patterns
|
||||
'''
|
||||
with patch.object(__builtin__, 'dict', MagicMock()):
|
||||
|
||||
self.assertEqual(match.filter_by({'key': 'value'},
|
||||
minion_id=101), 'value')
|
||||
|
||||
self.assertEqual(match.filter_by({'key': 'value'}), 'value')
|
||||
|
||||
self.assertEqual(match.filter_by({}), None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from integration import run_tests
|
||||
run_tests(MatchTestCase, needs_daemon=False)
|
Loading…
Add table
Reference in a new issue