Remove legacy async_add_job from homekit tests (#33727)

* Remove legacy async_add_job from homekit tests

* Empty commit to rerun CI
This commit is contained in:
J. Nick Koston 2020-04-05 21:33:36 -05:00 committed by GitHub
parent f7b822d000
commit e4ee4cf302
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 184 additions and 158 deletions

View file

@ -60,15 +60,15 @@ async def test_debounce(hass):
now = datetime(2018, 1, 1, 20, 0, 0, tzinfo=dt_util.UTC)
with patch("homeassistant.util.dt.utcnow", return_value=now):
await hass.async_add_job(debounce_demo, mock, "value")
await hass.async_add_executor_job(debounce_demo, mock, "value")
hass.bus.async_fire(EVENT_TIME_CHANGED, {ATTR_NOW: now + timedelta(seconds=3)})
await hass.async_block_till_done()
assert counter == 1
assert len(arguments) == 2
with patch("homeassistant.util.dt.utcnow", return_value=now):
await hass.async_add_job(debounce_demo, mock, "value")
await hass.async_add_job(debounce_demo, mock, "value")
await hass.async_add_executor_job(debounce_demo, mock, "value")
await hass.async_add_executor_job(debounce_demo, mock, "value")
hass.bus.async_fire(EVENT_TIME_CHANGED, {ATTR_NOW: now + timedelta(seconds=3)})
await hass.async_block_till_done()
@ -99,7 +99,7 @@ async def test_home_accessory(hass, hk_driver):
with patch(
"homeassistant.components.homekit.accessories.HomeAccessory.update_state"
) as mock_update_state:
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
state = hass.states.get(entity_id)
mock_update_state.assert_called_with(state)
@ -132,7 +132,7 @@ async def test_battery_service(hass, hk_driver, caplog):
assert acc._char_low_battery.value == 0
assert acc._char_charging.value == 2
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc._char_battery.value == 50
assert acc._char_low_battery.value == 0
@ -163,7 +163,7 @@ async def test_battery_service(hass, hk_driver, caplog):
assert acc._char_low_battery.value == 0
assert acc._char_charging.value == 2
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc._char_battery.value == 10
assert acc._char_low_battery.value == 1
@ -197,7 +197,7 @@ async def test_linked_battery_sensor(hass, hk_driver, caplog):
acc.update_state = lambda x: None
assert acc.linked_battery_sensor == linked_battery
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc._char_battery.value == 50
assert acc._char_low_battery.value == 0
@ -232,7 +232,7 @@ async def test_linked_battery_sensor(hass, hk_driver, caplog):
{CONF_LINKED_BATTERY_SENSOR: linked_battery, CONF_LOW_BATTERY_THRESHOLD: 50},
)
acc.update_state = lambda x: None
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc._char_battery.value == 20
assert acc._char_low_battery.value == 1
@ -263,7 +263,7 @@ async def test_missing_linked_battery_sensor(hass, hk_driver, caplog):
acc.update_state = lambda x: None
assert not acc.linked_battery_sensor
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert not acc.linked_battery_sensor

View file

@ -129,7 +129,7 @@ async def test_homekit_setup(hass, hk_driver):
f"{PATH_HOMEKIT}.accessories.HomeDriver", return_value=hk_driver
) as mock_driver, patch("homeassistant.util.get_local_ip") as mock_ip:
mock_ip.return_value = IP_ADDRESS
await hass.async_add_job(homekit.setup)
await hass.async_add_executor_job(homekit.setup)
path = hass.config.path(HOMEKIT_FILE)
assert isinstance(homekit.bridge, HomeBridge)
@ -153,7 +153,7 @@ async def test_homekit_setup_ip_address(hass, hk_driver):
with patch(
f"{PATH_HOMEKIT}.accessories.HomeDriver", return_value=hk_driver
) as mock_driver:
await hass.async_add_job(homekit.setup)
await hass.async_add_executor_job(homekit.setup)
mock_driver.assert_called_with(
hass,
address="172.0.0.0",
@ -172,7 +172,7 @@ async def test_homekit_setup_advertise_ip(hass, hk_driver):
with patch(
f"{PATH_HOMEKIT}.accessories.HomeDriver", return_value=hk_driver
) as mock_driver:
await hass.async_add_job(homekit.setup)
await hass.async_add_executor_job(homekit.setup)
mock_driver.assert_called_with(
hass,
address="0.0.0.0",
@ -187,7 +187,7 @@ async def test_homekit_setup_safe_mode(hass, hk_driver):
homekit = HomeKit(hass, BRIDGE_NAME, DEFAULT_PORT, None, {}, {}, True)
with patch(f"{PATH_HOMEKIT}.accessories.HomeDriver", return_value=hk_driver):
await hass.async_add_job(homekit.setup)
await hass.async_add_executor_job(homekit.setup)
assert homekit.driver.safe_mode is True
@ -263,7 +263,7 @@ async def test_homekit_start(hass, hk_driver, debounce_patcher):
) as hk_driver_add_acc, patch(
"pyhap.accessory_driver.AccessoryDriver.start"
) as hk_driver_start:
await hass.async_add_job(homekit.start)
await hass.async_add_executor_job(homekit.start)
mock_add_acc.assert_called_with(state)
mock_setup_msg.assert_called_with(hass, pin)
@ -273,7 +273,7 @@ async def test_homekit_start(hass, hk_driver, debounce_patcher):
# Test start() if already started
hk_driver_start.reset_mock()
await hass.async_add_job(homekit.start)
await hass.async_add_executor_job(homekit.start)
assert not hk_driver_start.called
@ -283,16 +283,16 @@ async def test_homekit_stop(hass):
homekit.driver = Mock()
assert homekit.status == STATUS_READY
await hass.async_add_job(homekit.stop)
await hass.async_add_executor_job(homekit.stop)
homekit.status = STATUS_WAIT
await hass.async_add_job(homekit.stop)
await hass.async_add_executor_job(homekit.stop)
homekit.status = STATUS_STOPPED
await hass.async_add_job(homekit.stop)
await hass.async_add_executor_job(homekit.stop)
assert homekit.driver.stop.called is False
# Test if driver is started
homekit.status = STATUS_RUNNING
await hass.async_add_job(homekit.stop)
await hass.async_add_executor_job(homekit.stop)
assert homekit.driver.stop.called is True
@ -337,5 +337,5 @@ async def test_homekit_too_many_accessories(hass, hk_driver):
with patch("pyhap.accessory_driver.AccessoryDriver.start"), patch(
"pyhap.accessory_driver.AccessoryDriver.add_accessory"
), patch("homeassistant.components.homekit._LOGGER.warning") as mock_warn:
await hass.async_add_job(homekit.start)
await hass.async_add_executor_job(homekit.start)
assert mock_warn.called is True

View file

@ -57,7 +57,7 @@ async def test_garage_door_open_close(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = cls.garage(hass, hk_driver, "Garage Door", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 4 # GarageDoorOpener
@ -89,7 +89,7 @@ async def test_garage_door_open_close(hass, hk_driver, cls, events):
call_close_cover = async_mock_service(hass, DOMAIN, "close_cover")
call_open_cover = async_mock_service(hass, DOMAIN, "open_cover")
await hass.async_add_job(acc.char_target_state.client_update_value, 1)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 1)
await hass.async_block_till_done()
assert call_close_cover
assert call_close_cover[0].data[ATTR_ENTITY_ID] == entity_id
@ -101,14 +101,14 @@ async def test_garage_door_open_close(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, STATE_CLOSED)
await hass.async_block_till_done()
await hass.async_add_job(acc.char_target_state.client_update_value, 1)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 1)
await hass.async_block_till_done()
assert acc.char_current_state.value == 1
assert acc.char_target_state.value == 1
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_state.client_update_value, 0)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 0)
await hass.async_block_till_done()
assert call_open_cover
assert call_open_cover[0].data[ATTR_ENTITY_ID] == entity_id
@ -120,7 +120,7 @@ async def test_garage_door_open_close(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, STATE_OPEN)
await hass.async_block_till_done()
await hass.async_add_job(acc.char_target_state.client_update_value, 0)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 0)
await hass.async_block_till_done()
assert acc.char_current_state.value == 0
assert acc.char_target_state.value == 0
@ -135,7 +135,7 @@ async def test_window_set_cover_position(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = cls.window(hass, hk_driver, "Cover", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 14 # WindowCovering
@ -176,7 +176,7 @@ async def test_window_set_cover_position(hass, hk_driver, cls, events):
# Set from HomeKit
call_set_cover_position = async_mock_service(hass, DOMAIN, "set_cover_position")
await hass.async_add_job(acc.char_target_position.client_update_value, 25)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 25)
await hass.async_block_till_done()
assert call_set_cover_position[0]
assert call_set_cover_position[0].data[ATTR_ENTITY_ID] == entity_id
@ -186,7 +186,7 @@ async def test_window_set_cover_position(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == 25
await hass.async_add_job(acc.char_target_position.client_update_value, 75)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 75)
await hass.async_block_till_done()
assert call_set_cover_position[1]
assert call_set_cover_position[1].data[ATTR_ENTITY_ID] == entity_id
@ -206,7 +206,7 @@ async def test_window_cover_set_tilt(hass, hk_driver, cls, events):
)
await hass.async_block_till_done()
acc = cls.window(hass, hk_driver, "Cover", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 14 # CATEGORY_WINDOW_COVERING
@ -242,7 +242,7 @@ async def test_window_cover_set_tilt(hass, hk_driver, cls, events):
# HomeKit sets tilts between -90 and 90 (degrees), whereas
# Homeassistant expects a % between 0 and 100. Keep that in mind
# when comparing
await hass.async_add_job(acc.char_target_tilt.client_update_value, 90)
await hass.async_add_executor_job(acc.char_target_tilt.client_update_value, 90)
await hass.async_block_till_done()
assert call_set_tilt_position[0]
assert call_set_tilt_position[0].data[ATTR_ENTITY_ID] == entity_id
@ -252,7 +252,7 @@ async def test_window_cover_set_tilt(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == 100
await hass.async_add_job(acc.char_target_tilt.client_update_value, 45)
await hass.async_add_executor_job(acc.char_target_tilt.client_update_value, 45)
await hass.async_block_till_done()
assert call_set_tilt_position[1]
assert call_set_tilt_position[1].data[ATTR_ENTITY_ID] == entity_id
@ -269,7 +269,7 @@ async def test_window_open_close(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, STATE_UNKNOWN, {ATTR_SUPPORTED_FEATURES: 0})
acc = cls.window_basic(hass, hk_driver, "Cover", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 14 # WindowCovering
@ -312,7 +312,7 @@ async def test_window_open_close(hass, hk_driver, cls, events):
call_close_cover = async_mock_service(hass, DOMAIN, "close_cover")
call_open_cover = async_mock_service(hass, DOMAIN, "open_cover")
await hass.async_add_job(acc.char_target_position.client_update_value, 25)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 25)
await hass.async_block_till_done()
assert call_close_cover
assert call_close_cover[0].data[ATTR_ENTITY_ID] == entity_id
@ -322,7 +322,7 @@ async def test_window_open_close(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_position.client_update_value, 90)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 90)
await hass.async_block_till_done()
assert call_open_cover[0]
assert call_open_cover[0].data[ATTR_ENTITY_ID] == entity_id
@ -332,7 +332,7 @@ async def test_window_open_close(hass, hk_driver, cls, events):
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_position.client_update_value, 55)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 55)
await hass.async_block_till_done()
assert call_open_cover[1]
assert call_open_cover[1].data[ATTR_ENTITY_ID] == entity_id
@ -351,14 +351,14 @@ async def test_window_open_close_stop(hass, hk_driver, cls, events):
entity_id, STATE_UNKNOWN, {ATTR_SUPPORTED_FEATURES: SUPPORT_STOP}
)
acc = cls.window_basic(hass, hk_driver, "Cover", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
# Set from HomeKit
call_close_cover = async_mock_service(hass, DOMAIN, "close_cover")
call_open_cover = async_mock_service(hass, DOMAIN, "open_cover")
call_stop_cover = async_mock_service(hass, DOMAIN, "stop_cover")
await hass.async_add_job(acc.char_target_position.client_update_value, 25)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 25)
await hass.async_block_till_done()
assert call_close_cover
assert call_close_cover[0].data[ATTR_ENTITY_ID] == entity_id
@ -368,7 +368,7 @@ async def test_window_open_close_stop(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_position.client_update_value, 90)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 90)
await hass.async_block_till_done()
assert call_open_cover
assert call_open_cover[0].data[ATTR_ENTITY_ID] == entity_id
@ -378,7 +378,7 @@ async def test_window_open_close_stop(hass, hk_driver, cls, events):
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_position.client_update_value, 55)
await hass.async_add_executor_job(acc.char_target_position.client_update_value, 55)
await hass.async_block_till_done()
assert call_stop_cover
assert call_stop_cover[0].data[ATTR_ENTITY_ID] == entity_id

View file

@ -62,7 +62,7 @@ async def test_fan_basic(hass, hk_driver, cls, events):
# If there are no speed_list values, then HomeKit speed is unsupported
assert acc.char_speed is None
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_active.value == 1
@ -82,7 +82,7 @@ async def test_fan_basic(hass, hk_driver, cls, events):
call_turn_on = async_mock_service(hass, DOMAIN, "turn_on")
call_turn_off = async_mock_service(hass, DOMAIN, "turn_off")
await hass.async_add_job(acc.char_active.client_update_value, 1)
await hass.async_add_executor_job(acc.char_active.client_update_value, 1)
await hass.async_block_till_done()
assert call_turn_on
assert call_turn_on[0].data[ATTR_ENTITY_ID] == entity_id
@ -92,7 +92,7 @@ async def test_fan_basic(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, STATE_ON)
await hass.async_block_till_done()
await hass.async_add_job(acc.char_active.client_update_value, 0)
await hass.async_add_executor_job(acc.char_active.client_update_value, 0)
await hass.async_block_till_done()
assert call_turn_off
assert call_turn_off[0].data[ATTR_ENTITY_ID] == entity_id
@ -114,7 +114,7 @@ async def test_fan_direction(hass, hk_driver, cls, events):
assert acc.char_direction.value == 0
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_direction.value == 0
@ -125,7 +125,7 @@ async def test_fan_direction(hass, hk_driver, cls, events):
# Set from HomeKit
call_set_direction = async_mock_service(hass, DOMAIN, "set_direction")
await hass.async_add_job(acc.char_direction.client_update_value, 0)
await hass.async_add_executor_job(acc.char_direction.client_update_value, 0)
await hass.async_block_till_done()
assert call_set_direction[0]
assert call_set_direction[0].data[ATTR_ENTITY_ID] == entity_id
@ -133,7 +133,7 @@ async def test_fan_direction(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == DIRECTION_FORWARD
await hass.async_add_job(acc.char_direction.client_update_value, 1)
await hass.async_add_executor_job(acc.char_direction.client_update_value, 1)
await hass.async_block_till_done()
assert call_set_direction[1]
assert call_set_direction[1].data[ATTR_ENTITY_ID] == entity_id
@ -156,7 +156,7 @@ async def test_fan_oscillate(hass, hk_driver, cls, events):
assert acc.char_swing.value == 0
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_swing.value == 0
@ -167,7 +167,7 @@ async def test_fan_oscillate(hass, hk_driver, cls, events):
# Set from HomeKit
call_oscillate = async_mock_service(hass, DOMAIN, "oscillate")
await hass.async_add_job(acc.char_swing.client_update_value, 0)
await hass.async_add_executor_job(acc.char_swing.client_update_value, 0)
await hass.async_block_till_done()
assert call_oscillate[0]
assert call_oscillate[0].data[ATTR_ENTITY_ID] == entity_id
@ -175,7 +175,7 @@ async def test_fan_oscillate(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is False
await hass.async_add_job(acc.char_swing.client_update_value, 1)
await hass.async_add_executor_job(acc.char_swing.client_update_value, 1)
await hass.async_block_till_done()
assert call_oscillate[1]
assert call_oscillate[1].data[ATTR_ENTITY_ID] == entity_id
@ -205,7 +205,7 @@ async def test_fan_speed(hass, hk_driver, cls, events):
# speed to 100 when turning on a fan on a freshly booted up server.
assert acc.char_speed.value != 0
await hass.async_add_job(acc.run)
await acc.run_handler()
assert (
acc.speed_mapping.speed_ranges == HomeKitSpeedMapping(speed_list).speed_ranges
)
@ -221,7 +221,7 @@ async def test_fan_speed(hass, hk_driver, cls, events):
# Set from HomeKit
call_set_speed = async_mock_service(hass, DOMAIN, "set_speed")
await hass.async_add_job(acc.char_speed.client_update_value, 42)
await hass.async_add_executor_job(acc.char_speed.client_update_value, 42)
await hass.async_block_till_done()
acc.speed_mapping.speed_to_states.assert_called_with(42)
assert call_set_speed[0]

View file

@ -68,7 +68,7 @@ async def test_light_basic(hass, hk_driver, cls, events, driver):
assert acc.category == 5 # Lightbulb
assert acc.char_on.value == 0
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_on.value == 1
@ -99,7 +99,7 @@ async def test_light_basic(hass, hk_driver, cls, events, driver):
"mock_addr",
)
await hass.async_add_job(acc.char_on.client_update_value, 1)
await hass.async_add_executor_job(acc.char_on.client_update_value, 1)
await hass.async_block_till_done()
assert call_turn_on
assert call_turn_on[0].data[ATTR_ENTITY_ID] == entity_id
@ -143,7 +143,7 @@ async def test_light_brightness(hass, hk_driver, cls, events, driver):
char_on_iid = acc.char_on.to_HAP()[HAP_REPR_IID]
char_brightness_iid = acc.char_brightness.to_HAP()[HAP_REPR_IID]
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_brightness.value == 100
@ -262,7 +262,7 @@ async def test_light_color_temperature(hass, hk_driver, cls, events, driver):
assert acc.char_color_temperature.value == 153
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_color_temperature.value == 190
@ -283,7 +283,9 @@ async def test_light_color_temperature(hass, hk_driver, cls, events, driver):
},
"mock_addr",
)
await hass.async_add_job(acc.char_color_temperature.client_update_value, 250)
await hass.async_add_executor_job(
acc.char_color_temperature.client_update_value, 250
)
await hass.async_block_till_done()
assert call_turn_on
assert call_turn_on[0].data[ATTR_ENTITY_ID] == entity_id
@ -327,7 +329,7 @@ async def test_light_rgb_color(hass, hk_driver, cls, events, driver):
assert acc.char_hue.value == 0
assert acc.char_saturation.value == 75
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_hue.value == 260
assert acc.char_saturation.value == 90
@ -420,7 +422,7 @@ async def test_light_set_brightness_and_color(hass, hk_driver, cls, events, driv
char_hue_iid = acc.char_hue.to_HAP()[HAP_REPR_IID]
char_saturation_iid = acc.char_saturation.to_HAP()[HAP_REPR_IID]
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_brightness.value == 100
@ -497,7 +499,7 @@ async def test_light_set_brightness_and_color_temp(
char_brightness_iid = acc.char_brightness.to_HAP()[HAP_REPR_IID]
char_color_temperature_iid = acc.char_color_temperature.to_HAP()[HAP_REPR_IID]
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_brightness.value == 100

View file

@ -24,7 +24,7 @@ async def test_lock_unlock(hass, hk_driver, events):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = Lock(hass, hk_driver, "Lock", entity_id, 2, config)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 6 # DoorLock
@ -56,7 +56,7 @@ async def test_lock_unlock(hass, hk_driver, events):
call_lock = async_mock_service(hass, DOMAIN, "lock")
call_unlock = async_mock_service(hass, DOMAIN, "unlock")
await hass.async_add_job(acc.char_target_state.client_update_value, 1)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 1)
await hass.async_block_till_done()
assert call_lock
assert call_lock[0].data[ATTR_ENTITY_ID] == entity_id
@ -65,7 +65,7 @@ async def test_lock_unlock(hass, hk_driver, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_state.client_update_value, 0)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 0)
await hass.async_block_till_done()
assert call_unlock
assert call_unlock[0].data[ATTR_ENTITY_ID] == entity_id
@ -87,7 +87,7 @@ async def test_no_code(hass, hk_driver, config, events):
# Set from HomeKit
call_lock = async_mock_service(hass, DOMAIN, "lock")
await hass.async_add_job(acc.char_target_state.client_update_value, 1)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 1)
await hass.async_block_till_done()
assert call_lock
assert call_lock[0].data[ATTR_ENTITY_ID] == entity_id

View file

@ -57,7 +57,7 @@ async def test_media_player_set_state(hass, hk_driver, events):
)
await hass.async_block_till_done()
acc = MediaPlayer(hass, hk_driver, "MediaPlayer", entity_id, 2, config)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 8 # Switch
@ -105,49 +105,63 @@ async def test_media_player_set_state(hass, hk_driver, events):
call_media_stop = async_mock_service(hass, DOMAIN, "media_stop")
call_toggle_mute = async_mock_service(hass, DOMAIN, "volume_mute")
await hass.async_add_job(acc.chars[FEATURE_ON_OFF].client_update_value, True)
await hass.async_add_executor_job(
acc.chars[FEATURE_ON_OFF].client_update_value, True
)
await hass.async_block_till_done()
assert call_turn_on
assert call_turn_on[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.chars[FEATURE_ON_OFF].client_update_value, False)
await hass.async_add_executor_job(
acc.chars[FEATURE_ON_OFF].client_update_value, False
)
await hass.async_block_till_done()
assert call_turn_off
assert call_turn_off[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.chars[FEATURE_PLAY_PAUSE].client_update_value, True)
await hass.async_add_executor_job(
acc.chars[FEATURE_PLAY_PAUSE].client_update_value, True
)
await hass.async_block_till_done()
assert call_media_play
assert call_media_play[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 3
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.chars[FEATURE_PLAY_PAUSE].client_update_value, False)
await hass.async_add_executor_job(
acc.chars[FEATURE_PLAY_PAUSE].client_update_value, False
)
await hass.async_block_till_done()
assert call_media_pause
assert call_media_pause[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 4
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.chars[FEATURE_PLAY_STOP].client_update_value, True)
await hass.async_add_executor_job(
acc.chars[FEATURE_PLAY_STOP].client_update_value, True
)
await hass.async_block_till_done()
assert call_media_play
assert call_media_play[1].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 5
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.chars[FEATURE_PLAY_STOP].client_update_value, False)
await hass.async_add_executor_job(
acc.chars[FEATURE_PLAY_STOP].client_update_value, False
)
await hass.async_block_till_done()
assert call_media_stop
assert call_media_stop[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 6
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.chars[FEATURE_TOGGLE_MUTE].client_update_value, True)
await hass.async_add_executor_job(
acc.chars[FEATURE_TOGGLE_MUTE].client_update_value, True
)
await hass.async_block_till_done()
assert call_toggle_mute
assert call_toggle_mute[0].data[ATTR_ENTITY_ID] == entity_id
@ -155,7 +169,9 @@ async def test_media_player_set_state(hass, hk_driver, events):
assert len(events) == 7
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.chars[FEATURE_TOGGLE_MUTE].client_update_value, False)
await hass.async_add_executor_job(
acc.chars[FEATURE_TOGGLE_MUTE].client_update_value, False
)
await hass.async_block_till_done()
assert call_toggle_mute
assert call_toggle_mute[1].data[ATTR_ENTITY_ID] == entity_id
@ -182,7 +198,7 @@ async def test_media_player_television(hass, hk_driver, events, caplog):
)
await hass.async_block_till_done()
acc = TelevisionMediaPlayer(hass, hk_driver, "MediaPlayer", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 31 # Television
@ -226,21 +242,21 @@ async def test_media_player_television(hass, hk_driver, events, caplog):
call_volume_down = async_mock_service(hass, DOMAIN, "volume_down")
call_volume_set = async_mock_service(hass, DOMAIN, "volume_set")
await hass.async_add_job(acc.char_active.client_update_value, 1)
await hass.async_add_executor_job(acc.char_active.client_update_value, 1)
await hass.async_block_till_done()
assert call_turn_on
assert call_turn_on[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_active.client_update_value, 0)
await hass.async_add_executor_job(acc.char_active.client_update_value, 0)
await hass.async_block_till_done()
assert call_turn_off
assert call_turn_off[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_remote_key.client_update_value, 11)
await hass.async_add_executor_job(acc.char_remote_key.client_update_value, 11)
await hass.async_block_till_done()
assert call_media_play_pause
assert call_media_play_pause[0].data[ATTR_ENTITY_ID] == entity_id
@ -249,28 +265,28 @@ async def test_media_player_television(hass, hk_driver, events, caplog):
hass.states.async_set(entity_id, STATE_PLAYING)
await hass.async_block_till_done()
await hass.async_add_job(acc.char_remote_key.client_update_value, 11)
await hass.async_add_executor_job(acc.char_remote_key.client_update_value, 11)
await hass.async_block_till_done()
assert call_media_pause
assert call_media_pause[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 4
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_remote_key.client_update_value, 10)
await hass.async_add_executor_job(acc.char_remote_key.client_update_value, 10)
await hass.async_block_till_done()
assert len(events) == 4
assert events[-1].data[ATTR_VALUE] is None
hass.states.async_set(entity_id, STATE_PAUSED)
await hass.async_block_till_done()
await hass.async_add_job(acc.char_remote_key.client_update_value, 11)
await hass.async_add_executor_job(acc.char_remote_key.client_update_value, 11)
await hass.async_block_till_done()
assert call_media_play
assert call_media_play[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 5
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_mute.client_update_value, True)
await hass.async_add_executor_job(acc.char_mute.client_update_value, True)
await hass.async_block_till_done()
assert call_toggle_mute
assert call_toggle_mute[0].data[ATTR_ENTITY_ID] == entity_id
@ -278,7 +294,7 @@ async def test_media_player_television(hass, hk_driver, events, caplog):
assert len(events) == 6
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_mute.client_update_value, False)
await hass.async_add_executor_job(acc.char_mute.client_update_value, False)
await hass.async_block_till_done()
assert call_toggle_mute
assert call_toggle_mute[1].data[ATTR_ENTITY_ID] == entity_id
@ -286,7 +302,7 @@ async def test_media_player_television(hass, hk_driver, events, caplog):
assert len(events) == 7
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_input_source.client_update_value, 1)
await hass.async_add_executor_job(acc.char_input_source.client_update_value, 1)
await hass.async_block_till_done()
assert call_select_source
assert call_select_source[0].data[ATTR_ENTITY_ID] == entity_id
@ -294,21 +310,21 @@ async def test_media_player_television(hass, hk_driver, events, caplog):
assert len(events) == 8
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_volume_selector.client_update_value, 0)
await hass.async_add_executor_job(acc.char_volume_selector.client_update_value, 0)
await hass.async_block_till_done()
assert call_volume_up
assert call_volume_up[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 9
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_volume_selector.client_update_value, 1)
await hass.async_add_executor_job(acc.char_volume_selector.client_update_value, 1)
await hass.async_block_till_done()
assert call_volume_down
assert call_volume_down[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 10
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_volume.client_update_value, 20)
await hass.async_add_executor_job(acc.char_volume.client_update_value, 20)
await hass.async_block_till_done()
assert call_volume_set[0]
assert call_volume_set[0].data[ATTR_ENTITY_ID] == entity_id
@ -329,7 +345,7 @@ async def test_media_player_television_basic(hass, hk_driver, events, caplog):
)
await hass.async_block_till_done()
acc = TelevisionMediaPlayer(hass, hk_driver, "MediaPlayer", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.chars_tv == []
assert acc.chars_speaker == []

View file

@ -27,7 +27,7 @@ async def test_switch_set_state(hass, hk_driver, events):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = SecuritySystem(hass, hk_driver, "SecuritySystem", entity_id, 2, config)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 11 # AlarmSystem
@ -71,7 +71,7 @@ async def test_switch_set_state(hass, hk_driver, events):
call_arm_night = async_mock_service(hass, DOMAIN, "alarm_arm_night")
call_disarm = async_mock_service(hass, DOMAIN, "alarm_disarm")
await hass.async_add_job(acc.char_target_state.client_update_value, 0)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 0)
await hass.async_block_till_done()
assert call_arm_home
assert call_arm_home[0].data[ATTR_ENTITY_ID] == entity_id
@ -80,7 +80,7 @@ async def test_switch_set_state(hass, hk_driver, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_state.client_update_value, 1)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 1)
await hass.async_block_till_done()
assert call_arm_away
assert call_arm_away[0].data[ATTR_ENTITY_ID] == entity_id
@ -89,7 +89,7 @@ async def test_switch_set_state(hass, hk_driver, events):
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_state.client_update_value, 2)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 2)
await hass.async_block_till_done()
assert call_arm_night
assert call_arm_night[0].data[ATTR_ENTITY_ID] == entity_id
@ -98,7 +98,7 @@ async def test_switch_set_state(hass, hk_driver, events):
assert len(events) == 3
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_target_state.client_update_value, 3)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 3)
await hass.async_block_till_done()
assert call_disarm
assert call_disarm[0].data[ATTR_ENTITY_ID] == entity_id
@ -120,7 +120,7 @@ async def test_no_alarm_code(hass, hk_driver, config, events):
# Set from HomeKit
call_arm_home = async_mock_service(hass, DOMAIN, "alarm_arm_home")
await hass.async_add_job(acc.char_target_state.client_update_value, 0)
await hass.async_add_executor_job(acc.char_target_state.client_update_value, 0)
await hass.async_block_till_done()
assert call_arm_home
assert call_arm_home[0].data[ATTR_ENTITY_ID] == entity_id

View file

@ -39,7 +39,7 @@ async def test_temperature(hass, hk_driver):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = TemperatureSensor(hass, hk_driver, "Temperature", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 10 # Sensor
@ -72,7 +72,7 @@ async def test_humidity(hass, hk_driver):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = HumiditySensor(hass, hk_driver, "Humidity", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 10 # Sensor
@ -95,7 +95,7 @@ async def test_air_quality(hass, hk_driver):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = AirQualitySensor(hass, hk_driver, "Air Quality", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 10 # Sensor
@ -126,7 +126,7 @@ async def test_co(hass, hk_driver):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = CarbonMonoxideSensor(hass, hk_driver, "CO", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 10 # Sensor
@ -165,7 +165,7 @@ async def test_co2(hass, hk_driver):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = CarbonDioxideSensor(hass, hk_driver, "CO2", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 10 # Sensor
@ -204,7 +204,7 @@ async def test_light(hass, hk_driver):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = LightSensor(hass, hk_driver, "Light", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 10 # Sensor
@ -228,7 +228,7 @@ async def test_binary(hass, hk_driver):
await hass.async_block_till_done()
acc = BinarySensor(hass, hk_driver, "Window Opening", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
assert acc.aid == 2
assert acc.category == 10 # Sensor

View file

@ -26,7 +26,7 @@ async def test_outlet_set_state(hass, hk_driver, events):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = Outlet(hass, hk_driver, "Outlet", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.aid == 2
@ -47,14 +47,14 @@ async def test_outlet_set_state(hass, hk_driver, events):
call_turn_on = async_mock_service(hass, "switch", "turn_on")
call_turn_off = async_mock_service(hass, "switch", "turn_off")
await hass.async_add_job(acc.char_on.client_update_value, True)
await hass.async_add_executor_job(acc.char_on.client_update_value, True)
await hass.async_block_till_done()
assert call_turn_on
assert call_turn_on[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_on.client_update_value, False)
await hass.async_add_executor_job(acc.char_on.client_update_value, False)
await hass.async_block_till_done()
assert call_turn_off
assert call_turn_off[0].data[ATTR_ENTITY_ID] == entity_id
@ -79,7 +79,7 @@ async def test_switch_set_state(hass, hk_driver, entity_id, attrs, events):
hass.states.async_set(entity_id, None, attrs)
await hass.async_block_till_done()
acc = Switch(hass, hk_driver, "Switch", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.aid == 2
@ -100,14 +100,14 @@ async def test_switch_set_state(hass, hk_driver, entity_id, attrs, events):
call_turn_on = async_mock_service(hass, domain, "turn_on")
call_turn_off = async_mock_service(hass, domain, "turn_off")
await hass.async_add_job(acc.char_on.client_update_value, True)
await hass.async_add_executor_job(acc.char_on.client_update_value, True)
await hass.async_block_till_done()
assert call_turn_on
assert call_turn_on[0].data[ATTR_ENTITY_ID] == entity_id
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_on.client_update_value, False)
await hass.async_add_executor_job(acc.char_on.client_update_value, False)
await hass.async_block_till_done()
assert call_turn_off
assert call_turn_off[0].data[ATTR_ENTITY_ID] == entity_id
@ -123,25 +123,25 @@ async def test_valve_set_state(hass, hk_driver, events):
await hass.async_block_till_done()
acc = Valve(hass, hk_driver, "Valve", entity_id, 2, {CONF_TYPE: TYPE_FAUCET})
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.category == 29 # Faucet
assert acc.char_valve_type.value == 3 # Water faucet
acc = Valve(hass, hk_driver, "Valve", entity_id, 2, {CONF_TYPE: TYPE_SHOWER})
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.category == 30 # Shower
assert acc.char_valve_type.value == 2 # Shower head
acc = Valve(hass, hk_driver, "Valve", entity_id, 2, {CONF_TYPE: TYPE_SPRINKLER})
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.category == 28 # Sprinkler
assert acc.char_valve_type.value == 1 # Irrigation
acc = Valve(hass, hk_driver, "Valve", entity_id, 2, {CONF_TYPE: TYPE_VALVE})
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.aid == 2
@ -165,7 +165,7 @@ async def test_valve_set_state(hass, hk_driver, events):
call_turn_on = async_mock_service(hass, "switch", "turn_on")
call_turn_off = async_mock_service(hass, "switch", "turn_off")
await hass.async_add_job(acc.char_active.client_update_value, True)
await hass.async_add_executor_job(acc.char_active.client_update_value, True)
await hass.async_block_till_done()
assert acc.char_in_use.value is True
assert call_turn_on
@ -173,7 +173,7 @@ async def test_valve_set_state(hass, hk_driver, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] is None
await hass.async_add_job(acc.char_active.client_update_value, False)
await hass.async_add_executor_job(acc.char_active.client_update_value, False)
await hass.async_block_till_done()
assert acc.char_in_use.value is False
assert call_turn_off
@ -197,7 +197,7 @@ async def test_reset_switch(hass, hk_driver, entity_id, attrs, events):
hass.states.async_set(entity_id, None, attrs)
await hass.async_block_till_done()
acc = Switch(hass, hk_driver, "Switch", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.activate_only is True
@ -206,7 +206,7 @@ async def test_reset_switch(hass, hk_driver, entity_id, attrs, events):
call_turn_on = async_mock_service(hass, domain, "turn_on")
call_turn_off = async_mock_service(hass, domain, "turn_off")
await hass.async_add_job(acc.char_on.client_update_value, True)
await hass.async_add_executor_job(acc.char_on.client_update_value, True)
await hass.async_block_till_done()
assert acc.char_on.value is True
assert call_turn_on
@ -221,7 +221,7 @@ async def test_reset_switch(hass, hk_driver, entity_id, attrs, events):
assert len(events) == 1
assert not call_turn_off
await hass.async_add_job(acc.char_on.client_update_value, False)
await hass.async_add_executor_job(acc.char_on.client_update_value, False)
await hass.async_block_till_done()
assert acc.char_on.value is False
assert len(events) == 1
@ -234,7 +234,7 @@ async def test_reset_switch_reload(hass, hk_driver, events):
hass.states.async_set(entity_id, None)
await hass.async_block_till_done()
acc = Switch(hass, hk_driver, "Switch", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.activate_only is True

View file

@ -91,7 +91,7 @@ async def test_thermostat(hass, hk_driver, cls, events):
)
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.aid == 2
@ -272,7 +272,7 @@ async def test_thermostat(hass, hk_driver, cls, events):
call_set_temperature = async_mock_service(hass, DOMAIN_CLIMATE, "set_temperature")
call_set_hvac_mode = async_mock_service(hass, DOMAIN_CLIMATE, "set_hvac_mode")
await hass.async_add_job(acc.char_target_temp.client_update_value, 19.0)
await hass.async_add_executor_job(acc.char_target_temp.client_update_value, 19.0)
await hass.async_block_till_done()
assert call_set_temperature
assert call_set_temperature[0].data[ATTR_ENTITY_ID] == entity_id
@ -281,7 +281,7 @@ async def test_thermostat(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == "19.0°C"
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 2)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 2)
await hass.async_block_till_done()
assert call_set_hvac_mode
assert call_set_hvac_mode[0].data[ATTR_ENTITY_ID] == entity_id
@ -290,7 +290,7 @@ async def test_thermostat(hass, hk_driver, cls, events):
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] == HVAC_MODE_COOL
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 3)
await hass.async_block_till_done()
assert call_set_hvac_mode
assert call_set_hvac_mode[1].data[ATTR_ENTITY_ID] == entity_id
@ -308,7 +308,7 @@ async def test_thermostat_auto(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, HVAC_MODE_OFF, {ATTR_SUPPORTED_FEATURES: 6})
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_cooling_thresh_temp.value == 23.0
@ -378,7 +378,9 @@ async def test_thermostat_auto(hass, hk_driver, cls, events):
# Set from HomeKit
call_set_temperature = async_mock_service(hass, DOMAIN_CLIMATE, "set_temperature")
await hass.async_add_job(acc.char_heating_thresh_temp.client_update_value, 20.0)
await hass.async_add_executor_job(
acc.char_heating_thresh_temp.client_update_value, 20.0
)
await hass.async_block_till_done()
assert call_set_temperature[0]
assert call_set_temperature[0].data[ATTR_ENTITY_ID] == entity_id
@ -387,7 +389,9 @@ async def test_thermostat_auto(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == "heating threshold 20.0°C"
await hass.async_add_job(acc.char_cooling_thresh_temp.client_update_value, 25.0)
await hass.async_add_executor_job(
acc.char_cooling_thresh_temp.client_update_value, 25.0
)
await hass.async_block_till_done()
assert call_set_temperature[1]
assert call_set_temperature[1].data[ATTR_ENTITY_ID] == entity_id
@ -405,7 +409,7 @@ async def test_thermostat_humidity(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, HVAC_MODE_OFF, {ATTR_SUPPORTED_FEATURES: 4})
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_target_humidity.value == 50
@ -430,7 +434,7 @@ async def test_thermostat_humidity(hass, hk_driver, cls, events):
# Set from HomeKit
call_set_humidity = async_mock_service(hass, DOMAIN_CLIMATE, "set_humidity")
await hass.async_add_job(acc.char_target_humidity.client_update_value, 35)
await hass.async_add_executor_job(acc.char_target_humidity.client_update_value, 35)
await hass.async_block_till_done()
assert call_set_humidity[0]
assert call_set_humidity[0].data[ATTR_ENTITY_ID] == entity_id
@ -457,7 +461,7 @@ async def test_thermostat_power_state(hass, hk_driver, cls, events):
)
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_current_heat_cool.value == 1
@ -492,7 +496,7 @@ async def test_thermostat_power_state(hass, hk_driver, cls, events):
# Set from HomeKit
call_set_hvac_mode = async_mock_service(hass, DOMAIN_CLIMATE, "set_hvac_mode")
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 1)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 1)
await hass.async_block_till_done()
assert call_set_hvac_mode
assert call_set_hvac_mode[0].data[ATTR_ENTITY_ID] == entity_id
@ -501,7 +505,7 @@ async def test_thermostat_power_state(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == HVAC_MODE_HEAT
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 0)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 0)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 0
assert len(events) == 2
@ -517,7 +521,7 @@ async def test_thermostat_fahrenheit(hass, hk_driver, cls, events):
await hass.async_block_till_done()
with patch.object(hass.config.units, CONF_TEMPERATURE_UNIT, new=TEMP_FAHRENHEIT):
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
hass.states.async_set(
@ -541,7 +545,9 @@ async def test_thermostat_fahrenheit(hass, hk_driver, cls, events):
# Set from HomeKit
call_set_temperature = async_mock_service(hass, DOMAIN_CLIMATE, "set_temperature")
await hass.async_add_job(acc.char_cooling_thresh_temp.client_update_value, 23)
await hass.async_add_executor_job(
acc.char_cooling_thresh_temp.client_update_value, 23
)
await hass.async_block_till_done()
assert call_set_temperature[0]
assert call_set_temperature[0].data[ATTR_ENTITY_ID] == entity_id
@ -550,7 +556,9 @@ async def test_thermostat_fahrenheit(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == "cooling threshold 73.5°F"
await hass.async_add_job(acc.char_heating_thresh_temp.client_update_value, 22)
await hass.async_add_executor_job(
acc.char_heating_thresh_temp.client_update_value, 22
)
await hass.async_block_till_done()
assert call_set_temperature[1]
assert call_set_temperature[1].data[ATTR_ENTITY_ID] == entity_id
@ -559,7 +567,7 @@ async def test_thermostat_fahrenheit(hass, hk_driver, cls, events):
assert len(events) == 2
assert events[-1].data[ATTR_VALUE] == "heating threshold 71.5°F"
await hass.async_add_job(acc.char_target_temp.client_update_value, 24.0)
await hass.async_add_executor_job(acc.char_target_temp.client_update_value, 24.0)
await hass.async_block_till_done()
assert call_set_temperature[2]
assert call_set_temperature[2].data[ATTR_ENTITY_ID] == entity_id
@ -597,7 +605,7 @@ async def test_thermostat_temperature_step_whole(hass, hk_driver, cls):
hass.states.async_set(entity_id, HVAC_MODE_OFF, {ATTR_TARGET_TEMP_STEP: 1})
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.char_target_temp.properties[PROP_MIN_STEP] == 0.1
@ -658,23 +666,23 @@ async def test_thermostat_hvac_modes(hass, hk_driver, cls):
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
hap = acc.char_target_heat_cool.to_HAP()
assert hap["valid-values"] == [0, 1]
assert acc.char_target_heat_cool.value == 0
with pytest.raises(ValueError):
await hass.async_add_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 0
await hass.async_add_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
with pytest.raises(ValueError):
await hass.async_add_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
@ -699,26 +707,26 @@ async def test_thermostat_hvac_modes_with_auto_heat_cool(hass, hk_driver, cls):
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
hap = acc.char_target_heat_cool.to_HAP()
assert hap["valid-values"] == [0, 1, 3]
assert acc.char_target_heat_cool.value == 3
await hass.async_add_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 3
await hass.async_add_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
with pytest.raises(ValueError):
await hass.async_add_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 3)
await hass.async_block_till_done()
assert call_set_hvac_mode
assert call_set_hvac_mode[0].data[ATTR_ENTITY_ID] == entity_id
@ -739,26 +747,26 @@ async def test_thermostat_hvac_modes_with_auto_no_heat_cool(hass, hk_driver, cls
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
hap = acc.char_target_heat_cool.to_HAP()
assert hap["valid-values"] == [0, 1, 3]
assert acc.char_target_heat_cool.value == 3
await hass.async_add_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 3
await hass.async_add_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
with pytest.raises(ValueError):
await hass.async_add_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 3)
await hass.async_block_till_done()
assert call_set_hvac_mode
assert call_set_hvac_mode[0].data[ATTR_ENTITY_ID] == entity_id
@ -776,23 +784,23 @@ async def test_thermostat_hvac_modes_with_auto_only(hass, hk_driver, cls):
await hass.async_block_till_done()
acc = cls.thermostat(hass, hk_driver, "Climate", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
hap = acc.char_target_heat_cool.to_HAP()
assert hap["valid-values"] == [0, 3]
assert acc.char_target_heat_cool.value == 3
await hass.async_add_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 3
with pytest.raises(ValueError):
await hass.async_add_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 1)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 3
with pytest.raises(ValueError):
await hass.async_add_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 2)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 3
@ -804,7 +812,7 @@ async def test_water_heater(hass, hk_driver, cls, events):
hass.states.async_set(entity_id, HVAC_MODE_HEAT)
await hass.async_block_till_done()
acc = cls.water_heater(hass, hk_driver, "WaterHeater", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
assert acc.aid == 2
@ -848,7 +856,7 @@ async def test_water_heater(hass, hk_driver, cls, events):
hass, DOMAIN_WATER_HEATER, "set_temperature"
)
await hass.async_add_job(acc.char_target_temp.client_update_value, 52.0)
await hass.async_add_executor_job(acc.char_target_temp.client_update_value, 52.0)
await hass.async_block_till_done()
assert call_set_temperature
assert call_set_temperature[0].data[ATTR_ENTITY_ID] == entity_id
@ -857,16 +865,16 @@ async def test_water_heater(hass, hk_driver, cls, events):
assert len(events) == 1
assert events[-1].data[ATTR_VALUE] == "52.0°C"
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 0)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 0)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
await hass.async_add_job(acc.char_target_heat_cool.client_update_value, 2)
await hass.async_add_executor_job(acc.char_target_heat_cool.client_update_value, 2)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
with pytest.raises(ValueError):
await hass.async_add_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_add_executor_job(acc.char_target_heat_cool.set_value, 3)
await hass.async_block_till_done()
assert acc.char_target_heat_cool.value == 1
@ -879,7 +887,7 @@ async def test_water_heater_fahrenheit(hass, hk_driver, cls, events):
await hass.async_block_till_done()
with patch.object(hass.config.units, CONF_TEMPERATURE_UNIT, new=TEMP_FAHRENHEIT):
acc = cls.water_heater(hass, hk_driver, "WaterHeater", entity_id, 2, None)
await hass.async_add_job(acc.run)
await acc.run_handler()
await hass.async_block_till_done()
hass.states.async_set(entity_id, HVAC_MODE_HEAT, {ATTR_TEMPERATURE: 131})
@ -893,7 +901,7 @@ async def test_water_heater_fahrenheit(hass, hk_driver, cls, events):
hass, DOMAIN_WATER_HEATER, "set_temperature"
)
await hass.async_add_job(acc.char_target_temp.client_update_value, 60)
await hass.async_add_executor_job(acc.char_target_temp.client_update_value, 60)
await hass.async_block_till_done()
assert call_set_temperature
assert call_set_temperature[0].data[ATTR_ENTITY_ID] == entity_id

View file

@ -199,7 +199,7 @@ async def test_show_setup_msg(hass):
call_create_notification = async_mock_service(hass, DOMAIN, "create")
await hass.async_add_job(show_setup_message, hass, pincode)
await hass.async_add_executor_job(show_setup_message, hass, pincode)
await hass.async_block_till_done()
assert call_create_notification
@ -211,7 +211,7 @@ async def test_dismiss_setup_msg(hass):
"""Test dismiss setup message."""
call_dismiss_notification = async_mock_service(hass, DOMAIN, "dismiss")
await hass.async_add_job(dismiss_setup_message, hass)
await hass.async_add_executor_job(dismiss_setup_message, hass)
await hass.async_block_till_done()
assert call_dismiss_notification