12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- # coding: utf-8
- # Python libs
- from __future__ import absolute_import
- from collections import namedtuple
- # Salt libs
- import salt.beacons.salt_proxy as salt_proxy
- from tests.support.mixins import LoaderModuleMockMixin
- from tests.support.mock import MagicMock, patch
- # Salt testing libs
- from tests.support.unit import TestCase
- PATCH_OPTS = dict(autospec=True, spec_set=True)
- FakeProcess = namedtuple("Process", "cmdline pid")
- class SaltProxyBeaconTestCase(TestCase, LoaderModuleMockMixin):
- """
- Test case for salt.beacons.[s]
- """
- def setup_loader_modules(self):
- return {salt_proxy: {"__context__": {}, "__salt__": {}}}
- def test_non_list_config(self):
- config = {}
- ret = salt_proxy.validate(config)
- self.assertEqual(
- ret, (False, "Configuration for salt_proxy beacon must be a list.")
- )
- def test_empty_config(self):
- config = [{}]
- ret = salt_proxy.validate(config)
- self.assertEqual(
- ret, (False, "Configuration for salt_proxy beacon requires proxies.")
- )
- def test_salt_proxy_running(self):
- mock = MagicMock(return_value={"result": True})
- with patch.dict(salt_proxy.__salt__, {"salt_proxy.is_running": mock}):
- config = [{"proxies": {"p8000": ""}}]
- ret = salt_proxy.validate(config)
- self.assertEqual(ret, (True, "Valid beacon configuration"))
- ret = salt_proxy.beacon(config)
- self.assertEqual(ret, [{"p8000": "Proxy p8000 is already running"}])
- def test_salt_proxy_not_running(self):
- is_running_mock = MagicMock(return_value={"result": False})
- configure_mock = MagicMock(
- return_value={
- "result": True,
- "changes": {
- "new": "Salt Proxy: Started proxy process for p8000",
- "old": [],
- },
- }
- )
- cmd_run_mock = MagicMock(
- return_value={"pid": 1000, "retcode": 0, "stderr": "", "stdout": ""}
- )
- with patch.dict(
- salt_proxy.__salt__, {"salt_proxy.is_running": is_running_mock}
- ), patch.dict(
- salt_proxy.__salt__, {"salt_proxy.configure_proxy": configure_mock}
- ), patch.dict(
- salt_proxy.__salt__, {"cmd.run_all": cmd_run_mock}
- ):
- config = [{"proxies": {"p8000": ""}}]
- ret = salt_proxy.validate(config)
- self.assertEqual(ret, (True, "Valid beacon configuration"))
- ret = salt_proxy.beacon(config)
- self.assertEqual(ret, [{"p8000": "Proxy p8000 was started"}])
|