salt/tests/unit/beacons/test_sensehat.py
Erik Johnson f72bbc5036
Rename beacon unit test modules to conform with naming convention
Also consolidate pyroute2 network_settings tests into network_settings
beacon test module.
2018-08-14 13:53:29 -05:00

110 lines
3.3 KiB
Python

# 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, MagicMock
from tests.support.mixins import LoaderModuleMockMixin
# Salt libs
import salt.beacons.sensehat as sensehat
@skipIf(NO_MOCK, NO_MOCK_REASON)
class SensehatBeaconTestCase(TestCase, LoaderModuleMockMixin):
'''
Test case for salt.beacons.[s]
'''
def setup_loader_modules(self):
self.HUMIDITY_MOCK = MagicMock(return_value=80)
self.TEMPERATURE_MOCK = MagicMock(return_value=30)
self.PRESSURE_MOCK = MagicMock(return_value=1500)
self.addCleanup(delattr, self, 'HUMIDITY_MOCK')
self.addCleanup(delattr, self, 'TEMPERATURE_MOCK')
self.addCleanup(delattr, self, 'PRESSURE_MOCK')
return {
sensehat: {
'__context__': {},
'__salt__': {'sensehat.get_humidity': self.HUMIDITY_MOCK,
'sensehat.get_temperature': self.TEMPERATURE_MOCK,
'sensehat.get_pressure': self.PRESSURE_MOCK
},
}
}
def test_non_list_config(self):
config = {}
ret = sensehat.validate(config)
self.assertEqual(ret, (False, 'Configuration for sensehat beacon'
' must be a list.'))
def test_empty_config(self):
config = [{}]
ret = sensehat.validate(config)
self.assertEqual(ret, (False, 'Configuration for sensehat '
'beacon requires sensors.'))
def test_sensehat_humidity_match(self):
config = [{'sensors': {'humidity': '70%'}}]
ret = sensehat.validate(config)
self.assertEqual(ret, (True, 'Valid beacon configuration'))
ret = sensehat.beacon(config)
self.assertEqual(ret, [{'tag': 'sensehat/humidity',
'humidity': 80}])
def test_sensehat_temperature_match(self):
config = [{'sensors': {'temperature': 20}}]
ret = sensehat.validate(config)
self.assertEqual(ret, (True, 'Valid beacon configuration'))
ret = sensehat.beacon(config)
self.assertEqual(ret, [{'tag': 'sensehat/temperature',
'temperature': 30}])
def test_sensehat_temperature_match_range(self):
config = [{'sensors': {'temperature': [20, 29]}}]
ret = sensehat.validate(config)
self.assertEqual(ret, (True, 'Valid beacon configuration'))
ret = sensehat.beacon(config)
self.assertEqual(ret, [{'tag': 'sensehat/temperature',
'temperature': 30}])
def test_sensehat_pressure_match(self):
config = [{'sensors': {'pressure': '1400'}}]
ret = sensehat.validate(config)
self.assertEqual(ret, (True, 'Valid beacon configuration'))
ret = sensehat.beacon(config)
self.assertEqual(ret, [{'tag': 'sensehat/pressure',
'pressure': 1500}])
def test_sensehat_no_match(self):
config = [{'sensors': {'pressure': '1600'}}]
ret = sensehat.validate(config)
self.assertEqual(ret, (True, 'Valid beacon configuration'))
ret = sensehat.beacon(config)
self.assertEqual(ret, [])