salt/tests/unit/test_beacons.py
2020-04-03 13:05:41 -05:00

54 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
"""
unit tests for the beacon_module parameter
"""
# Import Python libs
from __future__ import absolute_import, print_function, unicode_literals
import logging
# Import Salt Libs
import salt.beacons as beacons
import salt.config
# Import Salt Testing Libs
from tests.support.mixins import LoaderModuleMockMixin
from tests.support.mock import patch
from tests.support.unit import TestCase
log = logging.getLogger(__name__)
class BeaconsTestCase(TestCase, LoaderModuleMockMixin):
"""
Test cases for salt beacon_module parameter
"""
def setup_loader_modules(self):
return {beacons: {}}
def test_beacon_module(self):
"""
Test that beacon_module parameter for beacon configuration
"""
mock_opts = salt.config.DEFAULT_MINION_OPTS.copy()
mock_opts["id"] = "minion"
mock_opts["__role"] = "minion"
mock_opts["beacons"] = {
"watch_apache": [
{"processes": {"apache2": "stopped"}},
{"beacon_module": "ps"},
]
}
with patch.dict(beacons.__opts__, mock_opts):
ret = salt.beacons.Beacon(mock_opts, []).process(
mock_opts["beacons"], mock_opts["grains"]
)
_expected = [
{
"tag": "salt/beacon/minion/watch_apache/",
"data": {"id": "minion", "apache2": "Stopped"},
"beacon_name": "ps",
}
]
self.assertEqual(ret, _expected)