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
예제 #2
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)
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
예제 #5
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)
예제 #6
0
    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()
예제 #7
0
    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
예제 #9
0
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