12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # coding: utf-8
- # Python libs
- from __future__ import absolute_import
- import logging
- # Salt libs
- import salt.beacons.load as load
- import salt.utils.platform
- from tests.support.mixins import LoaderModuleMockMixin
- from tests.support.mock import MagicMock, patch
- # Salt testing libs
- from tests.support.unit import TestCase, skipIf
- log = logging.getLogger(__name__)
- class LoadBeaconTestCase(TestCase, LoaderModuleMockMixin):
- """
- Test case for salt.beacons.load
- """
- def setup_loader_modules(self):
- return {load: {"__context__": {}, "__salt__": {}}}
- def test_non_list_config(self):
- config = {}
- ret = load.validate(config)
- self.assertEqual(ret, (False, "Configuration for load beacon must be a list."))
- def test_empty_config(self):
- config = [{}]
- ret = load.validate(config)
- self.assertEqual(
- ret, (False, "Averages configuration is required for load beacon.")
- )
- @skipIf(salt.utils.platform.is_windows(), "os.getloadavg not available on Windows")
- def test_load_match(self):
- with patch("os.getloadavg", MagicMock(return_value=(1.82, 1.84, 1.56))):
- config = [
- {
- "averages": {"1m": [0.0, 2.0], "5m": [0.0, 1.5], "15m": [0.0, 1.0]},
- "emitatstartup": True,
- "onchangeonly": False,
- }
- ]
- ret = load.validate(config)
- self.assertEqual(ret, (True, "Valid beacon configuration"))
- _expected_return = [{"1m": 1.82, "5m": 1.84, "15m": 1.56}]
- ret = load.beacon(config)
- self.assertEqual(ret, _expected_return)
|