salt/tests/unit/beacons/test_haproxy.py
Erik Johnson f72bbc5036
Rename beacon unit test modules to conform with naming convention
Also consolidate pyroute2 network_settings tests into network_settings
beacon test module.
2018-08-14 13:53:29 -05:00

79 lines
2.4 KiB
Python

# coding: utf-8
# Python libs
from __future__ import absolute_import
# Salt testing libs
from tests.support.unit import skipIf, TestCase
from tests.support.mock import NO_MOCK, NO_MOCK_REASON, patch, MagicMock
from tests.support.mixins import LoaderModuleMockMixin
# Salt libs
import salt.beacons.haproxy as haproxy
@skipIf(NO_MOCK, NO_MOCK_REASON)
class HAProxyBeaconTestCase(TestCase, LoaderModuleMockMixin):
'''
Test case for salt.beacons.haproxy
'''
def setup_loader_modules(self):
return {
haproxy: {
'__context__': {},
'__salt__': {},
}
}
def test_non_list_config(self):
config = {}
ret = haproxy.validate(config)
self.assertEqual(ret, (False, 'Configuration for haproxy beacon must'
' be a list.'))
def test_empty_config(self):
config = [{}]
ret = haproxy.validate(config)
self.assertEqual(ret, (False, 'Configuration for haproxy beacon '
'requires backends.'))
def test_no_servers(self):
config = [{'backends': {'www-backend': {'threshold': 45}}}]
ret = haproxy.validate(config)
self.assertEqual(ret, (False, 'Backends for haproxy '
'beacon require servers.'))
def test_threshold_reached(self):
config = [{'backends': {'www-backend': {'threshold': 45,
'servers': ['web1']
}}}]
ret = haproxy.validate(config)
self.assertEqual(ret, (True, 'Valid beacon configuration'))
mock = MagicMock(return_value=46)
with patch.dict(haproxy.__salt__, {'haproxy.get_sessions': mock}):
ret = haproxy.beacon(config)
self.assertEqual(ret, [{'threshold': 45,
'scur': 46,
'server': 'web1'}])
def test_threshold_not_reached(self):
config = [{'backends': {'www-backend': {'threshold': 100,
'servers': ['web1']
}}}]
ret = haproxy.validate(config)
self.assertEqual(ret, (True, 'Valid beacon configuration'))
mock = MagicMock(return_value=50)
with patch.dict(haproxy.__salt__, {'haproxy.get_sessions': mock}):
ret = haproxy.beacon(config)
self.assertEqual(ret, [])