"""The tests for the Command line Binary sensor platform.""" import unittest from homeassistant.const import (STATE_ON, STATE_OFF) from homeassistant.components.binary_sensor import command_line from tests.common import get_test_home_assistant class TestCommandSensorBinarySensor(unittest.TestCase): """Test the Command line Binary sensor.""" def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() def tearDown(self): """Stop everything that was started.""" self.hass.stop() def test_setup(self): """Test sensor setup.""" config = {'name': 'Test', 'command': 'echo 1', 'payload_on': '1', 'payload_off': '0'} devices = [] def add_dev_callback(devs): """Add callback to add devices.""" for dev in devs: devices.append(dev) command_line.setup_platform( self.hass, config, add_dev_callback) self.assertEqual(1, len(devices)) entity = devices[0] self.assertEqual('Test', entity.name) self.assertEqual(STATE_ON, entity.state) def test_setup_bad_config(self): """Test the setup with a bad configuration.""" config = {} devices = [] def add_dev_callback(devs): """Add callback to add devices.""" for dev in devs: devices.append(dev) self.assertFalse(command_line.setup_platform( self.hass, config, add_dev_callback)) self.assertEqual(0, len(devices)) def test_template(self): """Test setting the state with a template.""" data = command_line.CommandSensorData('echo 10') entity = command_line.CommandBinarySensor( self.hass, data, 'test', None, '1.0', '0', '{{ value | multiply(0.1) }}') self.assertEqual(STATE_ON, entity.state) def test_sensor_off(self): """Test setting the state with a template.""" data = command_line.CommandSensorData('echo 0') entity = command_line.CommandBinarySensor( self.hass, data, 'test', None, '1', '0', None) self.assertEqual(STATE_OFF, entity.state)