123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- # 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, [])
|