add a bit more test coverage

pull/10535/head
Derek Brooks 2017-12-26 11:12:28 -08:00
parent 8ef8dbc868
commit f0244d7982
3 changed files with 64 additions and 5 deletions

View File

@ -16,8 +16,6 @@ REQUIREMENTS = ["nuheat==0.3.0"]
_LOGGER = logging.getLogger(__name__)
DATA_NUHEAT = "nuheat"
DOMAIN = "nuheat"
CONFIG_SCHEMA = vol.Schema({
@ -41,7 +39,7 @@ def setup(hass, config):
api = nuheat.NuHeat(username, password)
api.authenticate()
hass.data[DATA_NUHEAT] = (api, devices)
hass.data[DOMAIN] = (api, devices)
discovery.load_platform(hass, "climate", DOMAIN, {}, config)
return True

View File

@ -42,6 +42,7 @@ class TestNuHeat(unittest.TestCase):
target_celsius=22,
target_fahrenheit=72)
thermostat.get_data = Mock()
thermostat.resume_schedule = Mock()
api = Mock()
@ -132,6 +133,17 @@ class TestNuHeat(unittest.TestCase):
self.assertEqual(
self.thermostat.current_hold_mode, nuheat.MODE_TEMPORARY_HOLD)
self.thermostat._thermostat.schedule_mode = None
self.assertEqual(
self.thermostat.current_hold_mode, nuheat.MODE_AUTO)
def test_operation_list(self):
"""Test the operation list."""
self.assertEqual(
self.thermostat.operation_list,
[STATE_HEAT, STATE_IDLE]
)
def test_resume_program(self):
"""Test resume schedule."""
self.thermostat.resume_program()
@ -167,7 +179,7 @@ class TestNuHeat(unittest.TestCase):
self.assertTrue(self.thermostat._force_update)
@patch.object(nuheat.NuHeatThermostat, "_throttled_update")
def test_forced_update(self, throttled_update):
def test_update_without_throttle(self, throttled_update):
"""Test update without throttle."""
self.thermostat._force_update = True
self.thermostat.update()
@ -175,9 +187,14 @@ class TestNuHeat(unittest.TestCase):
self.assertFalse(self.thermostat._force_update)
@patch.object(nuheat.NuHeatThermostat, "_throttled_update")
def test_throttled_update(self, throttled_update):
def test_update_with_throttle(self, throttled_update):
"""Test update with throttle."""
self.thermostat._force_update = False
self.thermostat.update()
throttled_update.assert_called_once_with()
self.assertFalse(self.thermostat._force_update)
def test_throttled_update(self):
"""Test update with throttle."""
self.thermostat._throttled_update()
self.thermostat._thermostat.get_data.assert_called_once_with()

View File

@ -0,0 +1,44 @@
"""NuHeat component tests."""
import unittest
from unittest.mock import patch
from tests.common import get_test_home_assistant, MockDependency
from homeassistant.components import nuheat
VALID_CONFIG = {
"nuheat": {
"username": "warm",
"password": "feet",
"devices": "thermostat123"
}
}
class TestNuHeat(unittest.TestCase):
"""Test the NuHeat component."""
def setUp(self):
"""Initialize the values for this test class."""
self.hass = get_test_home_assistant()
self.config = VALID_CONFIG
def tearDown(self):
"""Teardown this test class. Stop hass."""
self.hass.stop()
@MockDependency("nuheat")
@patch("homeassistant.helpers.discovery.load_platform")
def test_setup(self, mocked_nuheat, mocked_load):
"""Test setting up the NuHeat component."""
nuheat.setup(self.hass, self.config)
mocked_nuheat.NuHeat.assert_called_with("warm", "feet")
self.assertIn(nuheat.DOMAIN, self.hass.data)
self.assertEquals(2, len(self.hass.data[nuheat.DOMAIN]))
self.assertEquals(self.hass.data[nuheat.DOMAIN][0], "thermostat123")
self.assertEquals(self.hass.data[nuheat.DOMAIN][1], "thermostat123")
mocked_load.assert_called_with(
self.hass, "climate", nuheat.DOMAIN, {}, self.config
)