1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # coding: utf-8
- # Python libs
- from __future__ import absolute_import
- from collections import namedtuple
- # Salt libs
- import salt.beacons.service as service_beacon
- 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 ServiceBeaconTestCase(TestCase, LoaderModuleMockMixin):
- """
- Test case for salt.beacons.service
- """
- def setup_loader_modules(self):
- return {service_beacon: {"__context__": {}, "__salt__": {}}}
- def test_non_list_config(self):
- config = {}
- ret = service_beacon.validate(config)
- self.assertEqual(
- ret, (False, "Configuration for service beacon must be a list.")
- )
- def test_empty_config(self):
- config = [{}]
- ret = service_beacon.validate(config)
- self.assertEqual(
- ret, (False, "Configuration for service beacon requires services.")
- )
- def test_service_running(self):
- with patch.dict(
- service_beacon.__salt__, {"service.status": MagicMock(return_value=True)}
- ):
- config = [{"services": {"salt-master": {}}}]
- ret = service_beacon.validate(config)
- self.assertEqual(ret, (True, "Valid beacon configuration"))
- ret = service_beacon.beacon(config)
- self.assertEqual(
- ret,
- [
- {
- "service_name": "salt-master",
- "tag": "salt-master",
- "salt-master": {"running": True},
- }
- ],
- )
- def test_service_not_running(self):
- with patch.dict(
- service_beacon.__salt__, {"service.status": MagicMock(return_value=False)}
- ):
- config = [{"services": {"salt-master": {}}}]
- ret = service_beacon.validate(config)
- self.assertEqual(ret, (True, "Valid beacon configuration"))
- ret = service_beacon.beacon(config)
- self.assertEqual(
- ret,
- [
- {
- "service_name": "salt-master",
- "tag": "salt-master",
- "salt-master": {"running": False},
- }
- ],
- )
|