mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #24110 from jayeshka/varnish-unit-test
adding varnish unit test case
This commit is contained in:
commit
f2e5d6c2fd
1 changed files with 93 additions and 0 deletions
93
tests/unit/modules/varnish_test.py
Normal file
93
tests/unit/modules/varnish_test.py
Normal file
|
@ -0,0 +1,93 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
:codeauthor: :email:`Jayesh Kariya <jayeshk@saltstack.com>`
|
||||
'''
|
||||
# Import Python libs
|
||||
from __future__ import absolute_import
|
||||
|
||||
# Import Salt Testing Libs
|
||||
from salttesting import skipIf, TestCase
|
||||
from salttesting.mock import (
|
||||
NO_MOCK,
|
||||
NO_MOCK_REASON,
|
||||
MagicMock,
|
||||
patch)
|
||||
|
||||
from salttesting.helpers import ensure_in_syspath
|
||||
|
||||
ensure_in_syspath('../../')
|
||||
|
||||
# Import Salt Libs
|
||||
from salt.modules import varnish
|
||||
|
||||
# Globals
|
||||
varnish.__salt__ = {}
|
||||
|
||||
|
||||
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
||||
class VarnishTestCase(TestCase):
|
||||
'''
|
||||
Test cases for salt.modules.varnish
|
||||
'''
|
||||
def test_version(self):
|
||||
'''
|
||||
Test to return server version from varnishd -V
|
||||
'''
|
||||
with patch.dict(varnish.__salt__,
|
||||
{'cmd.run': MagicMock(return_value='(varnish-2.0)')}):
|
||||
self.assertEqual(varnish.version(), '2.0')
|
||||
|
||||
def test_ban(self):
|
||||
'''
|
||||
Test to add ban to the varnish cache
|
||||
'''
|
||||
with patch.object(varnish, '_run_varnishadm',
|
||||
return_value={'retcode': 0}):
|
||||
self.assertTrue(varnish.ban('ban_expression'))
|
||||
|
||||
def test_ban_list(self):
|
||||
'''
|
||||
Test to list varnish cache current bans
|
||||
'''
|
||||
with patch.object(varnish, '_run_varnishadm',
|
||||
return_value={'retcode': True}):
|
||||
self.assertFalse(varnish.ban_list())
|
||||
|
||||
with patch.object(varnish, '_run_varnishadm',
|
||||
return_value={'retcode': False,
|
||||
'stdout': 'A\nB\nC'}):
|
||||
self.assertEqual(varnish.ban_list(), ['B', 'C'])
|
||||
|
||||
def test_purge(self):
|
||||
'''
|
||||
Test to purge the varnish cache
|
||||
'''
|
||||
with patch.object(varnish, 'ban', return_value=True):
|
||||
self.assertTrue(varnish.purge())
|
||||
|
||||
def test_param_set(self):
|
||||
'''
|
||||
Test to set a param in varnish cache
|
||||
'''
|
||||
with patch.object(varnish, '_run_varnishadm',
|
||||
return_value={'retcode': 0}):
|
||||
self.assertTrue(varnish.param_set('param', 'value'))
|
||||
|
||||
def test_param_show(self):
|
||||
'''
|
||||
Test to show params of varnish cache
|
||||
'''
|
||||
with patch.object(varnish, '_run_varnishadm',
|
||||
return_value={'retcode': True,
|
||||
'stdout': 'A\nB\nC'}):
|
||||
self.assertFalse(varnish.param_show('param'))
|
||||
|
||||
with patch.object(varnish, '_run_varnishadm',
|
||||
return_value={'retcode': False,
|
||||
'stdout': 'A .1\nB .2\n'}):
|
||||
self.assertEqual(varnish.param_show('param'), {'A': '.1'})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from integration import run_tests
|
||||
run_tests(VarnishTestCase, needs_daemon=False)
|
Loading…
Add table
Reference in a new issue