62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
"""
|
|
tests.components.sensor.tcp
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Tests TCP sensor.
|
|
"""
|
|
from copy import copy
|
|
from unittest.mock import patch, Mock
|
|
|
|
from homeassistant.components.sensor import tcp
|
|
from homeassistant.components.binary_sensor import tcp as bin_tcp
|
|
from tests.common import get_test_home_assistant
|
|
from tests.components.sensor import test_tcp
|
|
|
|
|
|
@patch('homeassistant.components.sensor.tcp.Sensor.update')
|
|
def test_setup_platform_valid_config(mock_update):
|
|
""" Should check the supplied config and call add_entities with Sensor. """
|
|
add_entities = Mock()
|
|
ret = bin_tcp.setup_platform(None, test_tcp.TEST_CONFIG, add_entities)
|
|
assert ret is None, "setup_platform() should return None if successful."
|
|
assert add_entities.called
|
|
assert isinstance(add_entities.call_args[0][0][0], bin_tcp.BinarySensor)
|
|
|
|
|
|
def test_setup_platform_invalid_config():
|
|
""" Should check the supplied config and return False if it is invalid. """
|
|
config = copy(test_tcp.TEST_CONFIG)
|
|
del config[tcp.CONF_HOST]
|
|
assert bin_tcp.setup_platform(None, config, None) is False
|
|
|
|
|
|
class TestTCPBinarySensor():
|
|
""" Test the TCP Binary Sensor. """
|
|
|
|
def setup_class(cls):
|
|
cls.hass = get_test_home_assistant()
|
|
|
|
def teardown_class(cls):
|
|
cls.hass.stop()
|
|
|
|
def test_requires_additional_values(self):
|
|
""" Should require the additional config values specified. """
|
|
config = copy(test_tcp.TEST_CONFIG)
|
|
for key in bin_tcp.BinarySensor.required:
|
|
del config[key]
|
|
assert len(config) != len(test_tcp.TEST_CONFIG)
|
|
assert not bin_tcp.BinarySensor.validate_config(config)
|
|
|
|
@patch('homeassistant.components.sensor.tcp.Sensor.update')
|
|
def test_is_on_true(self, mock_update):
|
|
""" Should return True if _state is the same as value_on. """
|
|
sensor = bin_tcp.BinarySensor(self.hass, test_tcp.TEST_CONFIG)
|
|
sensor._state = test_tcp.TEST_CONFIG[tcp.CONF_VALUE_ON]
|
|
assert sensor.is_on
|
|
|
|
@patch('homeassistant.components.sensor.tcp.Sensor.update')
|
|
def test_is_on_false(self, mock_update):
|
|
""" Should return False if _state is not the same as value_on. """
|
|
sensor = bin_tcp.BinarySensor(self.hass, test_tcp.TEST_CONFIG)
|
|
sensor._state = "%s abc" % test_tcp.TEST_CONFIG[tcp.CONF_VALUE_ON]
|
|
assert not sensor.is_on
|