async def test_binary_device_classes(hass, hk_driver): """Test if services and characteristics are assigned correctly.""" entity_id = "binary_sensor.demo" for device_class, (service, char, _) in BINARY_SENSOR_SERVICE_MAP.items(): hass.states.async_set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: device_class}) await hass.async_block_till_done() acc = BinarySensor(hass, hk_driver, "Binary Sensor", entity_id, 2, None) assert acc.get_service(service).display_name == service assert acc.char_detected.display_name == char
def test_binary_device_classes(self): """Test if services and characteristics are assigned correctly.""" entity_id = 'binary_sensor.demo' for device_class, (service, char) in BINARY_SENSOR_SERVICE_MAP.items(): self.hass.states.set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: device_class}) self.hass.block_till_done() acc = BinarySensor(self.hass, 'Binary Sensor', entity_id, 2, config=None) self.assertEqual(acc.get_service(service).display_name, service) self.assertEqual(acc.char_detected.display_name, char)
async def test_binary_device_classes(hass, hk_driver): """Test if services and characteristics are assigned correctly.""" entity_id = 'binary_sensor.demo' for device_class, (service, char) in BINARY_SENSOR_SERVICE_MAP.items(): hass.states.async_set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: device_class}) await hass.async_block_till_done() acc = BinarySensor(hass, hk_driver, 'Binary Sensor', entity_id, 2, None) assert acc.get_service(service).display_name == service assert acc.char_detected.display_name == char
async def test_binary(hass, hk_driver): """Test if accessory is updated after state change.""" entity_id = "binary_sensor.opening" hass.states.async_set(entity_id, STATE_UNKNOWN, {ATTR_DEVICE_CLASS: "opening"}) await hass.async_block_till_done() acc = BinarySensor(hass, hk_driver, "Window Opening", entity_id, 2, None) await acc.run_handler() await hass.async_block_till_done() assert acc.aid == 2 assert acc.category == 10 # Sensor assert acc.char_detected.value == 0 hass.states.async_set(entity_id, STATE_ON, {ATTR_DEVICE_CLASS: "opening"}) await hass.async_block_till_done() assert acc.char_detected.value == 1 hass.states.async_set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: "opening"}) await hass.async_block_till_done() assert acc.char_detected.value == 0 hass.states.async_set(entity_id, STATE_HOME, {ATTR_DEVICE_CLASS: "opening"}) await hass.async_block_till_done() assert acc.char_detected.value == 1 hass.states.async_set(entity_id, STATE_NOT_HOME, {ATTR_DEVICE_CLASS: "opening"}) await hass.async_block_till_done() assert acc.char_detected.value == 0 hass.states.async_remove(entity_id) await hass.async_block_till_done() assert acc.char_detected.value == 0
def test_binary_device_classes(self): """Test if services and characteristics are assigned correctly.""" entity_id = 'binary_sensor.demo' for device_class, (service, char) in BINARY_SENSOR_SERVICE_MAP.items(): self.hass.states.set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: device_class}) self.hass.block_till_done() acc = BinarySensor(self.hass, 'Binary Sensor', entity_id, 2, config=None) self.assertEqual(acc.get_service(service).display_name, service) self.assertEqual(acc.char_detected.display_name, char)
def test_binary(self): """Test if accessory is updated after state change.""" entity_id = 'binary_sensor.opening' self.hass.states.set(entity_id, STATE_UNKNOWN, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() acc = BinarySensor(self.hass, 'Window Opening', entity_id, 2, config=None) acc.run() self.assertEqual(acc.aid, 2) self.assertEqual(acc.category, 10) # Sensor self.assertEqual(acc.char_detected.value, 0) self.hass.states.set(entity_id, STATE_ON, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 1) self.hass.states.set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 0) self.hass.states.set(entity_id, STATE_HOME, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 1) self.hass.states.set(entity_id, STATE_NOT_HOME, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 0) self.hass.states.remove(entity_id) self.hass.block_till_done()
def test_binary(self): """Test if accessory is updated after state change.""" entity_id = 'binary_sensor.opening' self.hass.states.set(entity_id, STATE_UNKNOWN, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() acc = BinarySensor(self.hass, 'Window Opening', entity_id, 2, config=None) acc.run() self.assertEqual(acc.aid, 2) self.assertEqual(acc.category, 10) # Sensor self.assertEqual(acc.char_detected.value, 0) self.hass.states.set(entity_id, STATE_ON, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 1) self.hass.states.set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 0) self.hass.states.set(entity_id, STATE_HOME, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 1) self.hass.states.set(entity_id, STATE_NOT_HOME, {ATTR_DEVICE_CLASS: "opening"}) self.hass.block_till_done() self.assertEqual(acc.char_detected.value, 0) self.hass.states.remove(entity_id) self.hass.block_till_done()
async def test_motion_uses_bool(hass, hk_driver): """Test if accessory is updated after state change.""" entity_id = "binary_sensor.motion" hass.states.async_set( entity_id, STATE_UNKNOWN, {ATTR_DEVICE_CLASS: DEVICE_CLASS_MOTION} ) await hass.async_block_till_done() acc = BinarySensor(hass, hk_driver, "Motion Sensor", entity_id, 2, None) await acc.run_handler() await hass.async_block_till_done() assert acc.aid == 2 assert acc.category == 10 # Sensor assert acc.char_detected.value is False hass.states.async_set(entity_id, STATE_ON, {ATTR_DEVICE_CLASS: DEVICE_CLASS_MOTION}) await hass.async_block_till_done() assert acc.char_detected.value is True hass.states.async_set( entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: DEVICE_CLASS_MOTION} ) await hass.async_block_till_done() assert acc.char_detected.value is False hass.states.async_set( entity_id, STATE_HOME, {ATTR_DEVICE_CLASS: DEVICE_CLASS_MOTION} ) await hass.async_block_till_done() assert acc.char_detected.value is True hass.states.async_set( entity_id, STATE_NOT_HOME, {ATTR_DEVICE_CLASS: DEVICE_CLASS_MOTION} ) await hass.async_block_till_done() assert acc.char_detected.value is False hass.states.async_remove(entity_id) await hass.async_block_till_done() assert acc.char_detected.value is False
async def test_binary(hass): """Test if accessory is updated after state change.""" entity_id = 'binary_sensor.opening' hass.states.async_set(entity_id, STATE_UNKNOWN, {ATTR_DEVICE_CLASS: 'opening'}) await hass.async_block_till_done() acc = BinarySensor(hass, 'Window Opening', entity_id, 2, None) await hass.async_add_job(acc.run) assert acc.aid == 2 assert acc.category == 10 # Sensor assert acc.char_detected.value == 0 hass.states.async_set(entity_id, STATE_ON, {ATTR_DEVICE_CLASS: 'opening'}) await hass.async_block_till_done() assert acc.char_detected.value == 1 hass.states.async_set(entity_id, STATE_OFF, {ATTR_DEVICE_CLASS: 'opening'}) await hass.async_block_till_done() assert acc.char_detected.value == 0 hass.states.async_set(entity_id, STATE_HOME, {ATTR_DEVICE_CLASS: 'opening'}) await hass.async_block_till_done() assert acc.char_detected.value == 1 hass.states.async_set(entity_id, STATE_NOT_HOME, {ATTR_DEVICE_CLASS: 'opening'}) await hass.async_block_till_done() assert acc.char_detected.value == 0 hass.states.async_remove(entity_id) await hass.async_block_till_done() assert acc.char_detected.value == 0