Improve type hints in owntracks tests (#123866)

This commit is contained in:
epenet 2024-08-14 13:08:54 +02:00 committed by GitHub
parent 903342b394
commit d4082aee5a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,6 +1,7 @@
"""The tests for the Owntracks device tracker.""" """The tests for the Owntracks device tracker."""
import base64 import base64
from collections.abc import Callable
import json import json
import pickle import pickle
from unittest.mock import patch from unittest.mock import patch
@ -18,6 +19,8 @@ from homeassistant.setup import async_setup_component
from tests.common import MockConfigEntry, async_fire_mqtt_message from tests.common import MockConfigEntry, async_fire_mqtt_message
from tests.typing import ClientSessionGenerator, MqttMockHAClient from tests.typing import ClientSessionGenerator, MqttMockHAClient
type OwnTracksContextFactory = Callable[[], owntracks.OwnTracksContext]
USER = "greg" USER = "greg"
DEVICE = "phone" DEVICE = "phone"
@ -314,7 +317,7 @@ async def setup_owntracks(hass, config, ctx_cls=owntracks.OwnTracksContext):
@pytest.fixture @pytest.fixture
def context(hass, setup_comp): def context(hass: HomeAssistant, setup_comp: None) -> OwnTracksContextFactory:
"""Set up the mocked context.""" """Set up the mocked context."""
orig_context = owntracks.OwnTracksContext orig_context = owntracks.OwnTracksContext
context = None context = None
@ -407,14 +410,16 @@ def assert_mobile_tracker_accuracy(hass, accuracy, beacon=IBEACON_DEVICE):
assert state.attributes.get("gps_accuracy") == accuracy assert state.attributes.get("gps_accuracy") == accuracy
async def test_location_invalid_devid(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_location_invalid_devid(hass: HomeAssistant) -> None:
"""Test the update of a location.""" """Test the update of a location."""
await send_message(hass, "owntracks/paulus/nexus-5x", LOCATION_MESSAGE) await send_message(hass, "owntracks/paulus/nexus-5x", LOCATION_MESSAGE)
state = hass.states.get("device_tracker.paulus_nexus_5x") state = hass.states.get("device_tracker.paulus_nexus_5x")
assert state.state == "outer" assert state.state == "outer"
async def test_location_update(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_location_update(hass: HomeAssistant) -> None:
"""Test the update of a location.""" """Test the update of a location."""
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
@ -424,7 +429,8 @@ async def test_location_update(hass: HomeAssistant, context) -> None:
assert_location_state(hass, "outer") assert_location_state(hass, "outer")
async def test_location_update_no_t_key(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_location_update_no_t_key(hass: HomeAssistant) -> None:
"""Test the update of a location when message does not contain 't'.""" """Test the update of a location when message does not contain 't'."""
message = LOCATION_MESSAGE.copy() message = LOCATION_MESSAGE.copy()
message.pop("t") message.pop("t")
@ -436,7 +442,8 @@ async def test_location_update_no_t_key(hass: HomeAssistant, context) -> None:
assert_location_state(hass, "outer") assert_location_state(hass, "outer")
async def test_location_inaccurate_gps(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_location_inaccurate_gps(hass: HomeAssistant) -> None:
"""Test the location for inaccurate GPS information.""" """Test the location for inaccurate GPS information."""
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_INACCURATE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_INACCURATE)
@ -446,7 +453,8 @@ async def test_location_inaccurate_gps(hass: HomeAssistant, context) -> None:
assert_location_longitude(hass, LOCATION_MESSAGE["lon"]) assert_location_longitude(hass, LOCATION_MESSAGE["lon"])
async def test_location_zero_accuracy_gps(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_location_zero_accuracy_gps(hass: HomeAssistant) -> None:
"""Ignore the location for zero accuracy GPS information.""" """Ignore the location for zero accuracy GPS information."""
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_ZERO_ACCURACY) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_ZERO_ACCURACY)
@ -458,7 +466,9 @@ async def test_location_zero_accuracy_gps(hass: HomeAssistant, context) -> None:
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
# GPS based event entry / exit testing # GPS based event entry / exit testing
async def test_event_gps_entry_exit(hass: HomeAssistant, context) -> None: async def test_event_gps_entry_exit(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test the entry event.""" """Test the entry event."""
# Entering the owntracks circular region named "inner" # Entering the owntracks circular region named "inner"
await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE) await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE)
@ -496,7 +506,9 @@ async def test_event_gps_entry_exit(hass: HomeAssistant, context) -> None:
assert_location_accuracy(hass, LOCATION_MESSAGE["acc"]) assert_location_accuracy(hass, LOCATION_MESSAGE["acc"])
async def test_event_gps_with_spaces(hass: HomeAssistant, context) -> None: async def test_event_gps_with_spaces(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test the entry event.""" """Test the entry event."""
message = build_message({"desc": "inner 2"}, REGION_GPS_ENTER_MESSAGE) message = build_message({"desc": "inner 2"}, REGION_GPS_ENTER_MESSAGE)
await send_message(hass, EVENT_TOPIC, message) await send_message(hass, EVENT_TOPIC, message)
@ -509,7 +521,8 @@ async def test_event_gps_with_spaces(hass: HomeAssistant, context) -> None:
assert not context().regions_entered[USER] assert not context().regions_entered[USER]
async def test_event_gps_entry_inaccurate(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_gps_entry_inaccurate(hass: HomeAssistant) -> None:
"""Test the event for inaccurate entry.""" """Test the event for inaccurate entry."""
# Set location to the outer zone. # Set location to the outer zone.
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
@ -522,7 +535,9 @@ async def test_event_gps_entry_inaccurate(hass: HomeAssistant, context) -> None:
assert_location_state(hass, "inner") assert_location_state(hass, "inner")
async def test_event_gps_entry_exit_inaccurate(hass: HomeAssistant, context) -> None: async def test_event_gps_entry_exit_inaccurate(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test the event for inaccurate exit.""" """Test the event for inaccurate exit."""
await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE) await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE)
@ -542,7 +557,9 @@ async def test_event_gps_entry_exit_inaccurate(hass: HomeAssistant, context) ->
assert not context().regions_entered[USER] assert not context().regions_entered[USER]
async def test_event_gps_entry_exit_zero_accuracy(hass: HomeAssistant, context) -> None: async def test_event_gps_entry_exit_zero_accuracy(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test entry/exit events with accuracy zero.""" """Test entry/exit events with accuracy zero."""
await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE_ZERO) await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE_ZERO)
@ -562,9 +579,8 @@ async def test_event_gps_entry_exit_zero_accuracy(hass: HomeAssistant, context)
assert not context().regions_entered[USER] assert not context().regions_entered[USER]
async def test_event_gps_exit_outside_zone_sets_away( @pytest.mark.usefixtures("context")
hass: HomeAssistant, context async def test_event_gps_exit_outside_zone_sets_away(hass: HomeAssistant) -> None:
) -> None:
"""Test the event for exit zone.""" """Test the event for exit zone."""
await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE) await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE)
assert_location_state(hass, "inner") assert_location_state(hass, "inner")
@ -577,7 +593,8 @@ async def test_event_gps_exit_outside_zone_sets_away(
assert_location_state(hass, STATE_NOT_HOME) assert_location_state(hass, STATE_NOT_HOME)
async def test_event_gps_entry_exit_right_order(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_gps_entry_exit_right_order(hass: HomeAssistant) -> None:
"""Test the event for ordering.""" """Test the event for ordering."""
# Enter inner zone # Enter inner zone
# Set location to the outer zone. # Set location to the outer zone.
@ -602,7 +619,8 @@ async def test_event_gps_entry_exit_right_order(hass: HomeAssistant, context) ->
assert_location_state(hass, "outer") assert_location_state(hass, "outer")
async def test_event_gps_entry_exit_wrong_order(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_gps_entry_exit_wrong_order(hass: HomeAssistant) -> None:
"""Test the event for wrong order.""" """Test the event for wrong order."""
# Enter inner zone # Enter inner zone
await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE) await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE)
@ -625,7 +643,8 @@ async def test_event_gps_entry_exit_wrong_order(hass: HomeAssistant, context) ->
assert_location_state(hass, "outer") assert_location_state(hass, "outer")
async def test_event_gps_entry_unknown_zone(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_gps_entry_unknown_zone(hass: HomeAssistant) -> None:
"""Test the event for unknown zone.""" """Test the event for unknown zone."""
# Just treat as location update # Just treat as location update
message = build_message({"desc": "unknown"}, REGION_GPS_ENTER_MESSAGE) message = build_message({"desc": "unknown"}, REGION_GPS_ENTER_MESSAGE)
@ -634,7 +653,8 @@ async def test_event_gps_entry_unknown_zone(hass: HomeAssistant, context) -> Non
assert_location_state(hass, "inner") assert_location_state(hass, "inner")
async def test_event_gps_exit_unknown_zone(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_gps_exit_unknown_zone(hass: HomeAssistant) -> None:
"""Test the event for unknown zone.""" """Test the event for unknown zone."""
# Just treat as location update # Just treat as location update
message = build_message({"desc": "unknown"}, REGION_GPS_LEAVE_MESSAGE) message = build_message({"desc": "unknown"}, REGION_GPS_LEAVE_MESSAGE)
@ -643,7 +663,8 @@ async def test_event_gps_exit_unknown_zone(hass: HomeAssistant, context) -> None
assert_location_state(hass, "outer") assert_location_state(hass, "outer")
async def test_event_entry_zone_loading_dash(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_entry_zone_loading_dash(hass: HomeAssistant) -> None:
"""Test the event for zone landing.""" """Test the event for zone landing."""
# Make sure the leading - is ignored # Make sure the leading - is ignored
# Owntracks uses this to switch on hold # Owntracks uses this to switch on hold
@ -652,7 +673,9 @@ async def test_event_entry_zone_loading_dash(hass: HomeAssistant, context) -> No
assert_location_state(hass, "inner") assert_location_state(hass, "inner")
async def test_events_only_on(hass: HomeAssistant, context) -> None: async def test_events_only_on(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test events_only config suppresses location updates.""" """Test events_only config suppresses location updates."""
# Sending a location message that is not home # Sending a location message that is not home
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_NOT_HOME) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_NOT_HOME)
@ -673,7 +696,9 @@ async def test_events_only_on(hass: HomeAssistant, context) -> None:
assert_location_state(hass, STATE_NOT_HOME) assert_location_state(hass, STATE_NOT_HOME)
async def test_events_only_off(hass: HomeAssistant, context) -> None: async def test_events_only_off(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test when events_only is False.""" """Test when events_only is False."""
# Sending a location message that is not home # Sending a location message that is not home
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_NOT_HOME) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE_NOT_HOME)
@ -694,7 +719,8 @@ async def test_events_only_off(hass: HomeAssistant, context) -> None:
assert_location_state(hass, "outer") assert_location_state(hass, "outer")
async def test_event_source_type_entry_exit(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_source_type_entry_exit(hass: HomeAssistant) -> None:
"""Test the entry and exit events of source type.""" """Test the entry and exit events of source type."""
# Entering the owntracks circular region named "inner" # Entering the owntracks circular region named "inner"
await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE) await send_message(hass, EVENT_TOPIC, REGION_GPS_ENTER_MESSAGE)
@ -724,7 +750,9 @@ async def test_event_source_type_entry_exit(hass: HomeAssistant, context) -> Non
# Region Beacon based event entry / exit testing # Region Beacon based event entry / exit testing
async def test_event_region_entry_exit(hass: HomeAssistant, context) -> None: async def test_event_region_entry_exit(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test the entry event.""" """Test the entry event."""
# Seeing a beacon named "inner" # Seeing a beacon named "inner"
await send_message(hass, EVENT_TOPIC, REGION_BEACON_ENTER_MESSAGE) await send_message(hass, EVENT_TOPIC, REGION_BEACON_ENTER_MESSAGE)
@ -763,7 +791,9 @@ async def test_event_region_entry_exit(hass: HomeAssistant, context) -> None:
assert_location_accuracy(hass, LOCATION_MESSAGE["acc"]) assert_location_accuracy(hass, LOCATION_MESSAGE["acc"])
async def test_event_region_with_spaces(hass: HomeAssistant, context) -> None: async def test_event_region_with_spaces(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test the entry event.""" """Test the entry event."""
message = build_message({"desc": "inner 2"}, REGION_BEACON_ENTER_MESSAGE) message = build_message({"desc": "inner 2"}, REGION_BEACON_ENTER_MESSAGE)
await send_message(hass, EVENT_TOPIC, message) await send_message(hass, EVENT_TOPIC, message)
@ -776,9 +806,8 @@ async def test_event_region_with_spaces(hass: HomeAssistant, context) -> None:
assert not context().regions_entered[USER] assert not context().regions_entered[USER]
async def test_event_region_entry_exit_right_order( @pytest.mark.usefixtures("context")
hass: HomeAssistant, context async def test_event_region_entry_exit_right_order(hass: HomeAssistant) -> None:
) -> None:
"""Test the event for ordering.""" """Test the event for ordering."""
# Enter inner zone # Enter inner zone
# Set location to the outer zone. # Set location to the outer zone.
@ -809,9 +838,8 @@ async def test_event_region_entry_exit_right_order(
assert_location_state(hass, "inner") assert_location_state(hass, "inner")
async def test_event_region_entry_exit_wrong_order( @pytest.mark.usefixtures("context")
hass: HomeAssistant, context async def test_event_region_entry_exit_wrong_order(hass: HomeAssistant) -> None:
) -> None:
"""Test the event for wrong order.""" """Test the event for wrong order."""
# Enter inner zone # Enter inner zone
await send_message(hass, EVENT_TOPIC, REGION_BEACON_ENTER_MESSAGE) await send_message(hass, EVENT_TOPIC, REGION_BEACON_ENTER_MESSAGE)
@ -838,9 +866,8 @@ async def test_event_region_entry_exit_wrong_order(
assert_location_state(hass, "inner_2") assert_location_state(hass, "inner_2")
async def test_event_beacon_unknown_zone_no_location( @pytest.mark.usefixtures("context")
hass: HomeAssistant, context async def test_event_beacon_unknown_zone_no_location(hass: HomeAssistant) -> None:
) -> None:
"""Test the event for unknown zone.""" """Test the event for unknown zone."""
# A beacon which does not match a HA zone is the # A beacon which does not match a HA zone is the
# definition of a mobile beacon. In this case, "unknown" # definition of a mobile beacon. In this case, "unknown"
@ -865,7 +892,8 @@ async def test_event_beacon_unknown_zone_no_location(
assert_mobile_tracker_state(hass, "unknown", "unknown") assert_mobile_tracker_state(hass, "unknown", "unknown")
async def test_event_beacon_unknown_zone(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_event_beacon_unknown_zone(hass: HomeAssistant) -> None:
"""Test the event for unknown zone.""" """Test the event for unknown zone."""
# A beacon which does not match a HA zone is the # A beacon which does not match a HA zone is the
# definition of a mobile beacon. In this case, "unknown" # definition of a mobile beacon. In this case, "unknown"
@ -885,9 +913,8 @@ async def test_event_beacon_unknown_zone(hass: HomeAssistant, context) -> None:
assert_mobile_tracker_state(hass, "outer", "unknown") assert_mobile_tracker_state(hass, "outer", "unknown")
async def test_event_beacon_entry_zone_loading_dash( @pytest.mark.usefixtures("context")
hass: HomeAssistant, context async def test_event_beacon_entry_zone_loading_dash(hass: HomeAssistant) -> None:
) -> None:
"""Test the event for beacon zone landing.""" """Test the event for beacon zone landing."""
# Make sure the leading - is ignored # Make sure the leading - is ignored
# Owntracks uses this to switch on hold # Owntracks uses this to switch on hold
@ -899,7 +926,8 @@ async def test_event_beacon_entry_zone_loading_dash(
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
# Mobile Beacon based event entry / exit testing # Mobile Beacon based event entry / exit testing
async def test_mobile_enter_move_beacon(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_mobile_enter_move_beacon(hass: HomeAssistant) -> None:
"""Test the movement of a beacon.""" """Test the movement of a beacon."""
# I am in the outer zone. # I am in the outer zone.
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
@ -923,7 +951,8 @@ async def test_mobile_enter_move_beacon(hass: HomeAssistant, context) -> None:
assert_mobile_tracker_latitude(hass, not_home_lat) assert_mobile_tracker_latitude(hass, not_home_lat)
async def test_mobile_enter_exit_region_beacon(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_mobile_enter_exit_region_beacon(hass: HomeAssistant) -> None:
"""Test the enter and the exit of a mobile beacon.""" """Test the enter and the exit of a mobile beacon."""
# I am in the outer zone. # I am in the outer zone.
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
@ -946,7 +975,8 @@ async def test_mobile_enter_exit_region_beacon(hass: HomeAssistant, context) ->
assert_mobile_tracker_state(hass, "outer") assert_mobile_tracker_state(hass, "outer")
async def test_mobile_exit_move_beacon(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_mobile_exit_move_beacon(hass: HomeAssistant) -> None:
"""Test the exit move of a beacon.""" """Test the exit move of a beacon."""
# I am in the outer zone. # I am in the outer zone.
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
@ -968,7 +998,9 @@ async def test_mobile_exit_move_beacon(hass: HomeAssistant, context) -> None:
assert_mobile_tracker_state(hass, "outer") assert_mobile_tracker_state(hass, "outer")
async def test_mobile_multiple_async_enter_exit(hass: HomeAssistant, context) -> None: async def test_mobile_multiple_async_enter_exit(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test the multiple entering.""" """Test the multiple entering."""
# Test race condition # Test race condition
for _ in range(20): for _ in range(20):
@ -988,7 +1020,9 @@ async def test_mobile_multiple_async_enter_exit(hass: HomeAssistant, context) ->
assert len(context().mobile_beacons_active["greg_phone"]) == 0 assert len(context().mobile_beacons_active["greg_phone"]) == 0
async def test_mobile_multiple_enter_exit(hass: HomeAssistant, context) -> None: async def test_mobile_multiple_enter_exit(
hass: HomeAssistant, context: OwnTracksContextFactory
) -> None:
"""Test the multiple entering.""" """Test the multiple entering."""
await send_message(hass, EVENT_TOPIC, MOBILE_BEACON_ENTER_EVENT_MESSAGE) await send_message(hass, EVENT_TOPIC, MOBILE_BEACON_ENTER_EVENT_MESSAGE)
await send_message(hass, EVENT_TOPIC, MOBILE_BEACON_ENTER_EVENT_MESSAGE) await send_message(hass, EVENT_TOPIC, MOBILE_BEACON_ENTER_EVENT_MESSAGE)
@ -997,7 +1031,8 @@ async def test_mobile_multiple_enter_exit(hass: HomeAssistant, context) -> None:
assert len(context().mobile_beacons_active["greg_phone"]) == 0 assert len(context().mobile_beacons_active["greg_phone"]) == 0
async def test_complex_movement(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_complex_movement(hass: HomeAssistant) -> None:
"""Test a complex sequence representative of real-world use.""" """Test a complex sequence representative of real-world use."""
# I am in the outer zone. # I am in the outer zone.
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
@ -1119,9 +1154,8 @@ async def test_complex_movement(hass: HomeAssistant, context) -> None:
assert_mobile_tracker_state(hass, "outer") assert_mobile_tracker_state(hass, "outer")
async def test_complex_movement_sticky_keys_beacon( @pytest.mark.usefixtures("context")
hass: HomeAssistant, context async def test_complex_movement_sticky_keys_beacon(hass: HomeAssistant) -> None:
) -> None:
"""Test a complex sequence which was previously broken.""" """Test a complex sequence which was previously broken."""
# I am not_home # I am not_home
await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE) await send_message(hass, LOCATION_TOPIC, LOCATION_MESSAGE)
@ -1233,7 +1267,8 @@ async def test_complex_movement_sticky_keys_beacon(
assert_mobile_tracker_latitude(hass, INNER_ZONE["latitude"]) assert_mobile_tracker_latitude(hass, INNER_ZONE["latitude"])
async def test_waypoint_import_simple(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_waypoint_import_simple(hass: HomeAssistant) -> None:
"""Test a simple import of list of waypoints.""" """Test a simple import of list of waypoints."""
waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy() waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy()
await send_message(hass, WAYPOINTS_TOPIC, waypoints_message) await send_message(hass, WAYPOINTS_TOPIC, waypoints_message)
@ -1244,7 +1279,8 @@ async def test_waypoint_import_simple(hass: HomeAssistant, context) -> None:
assert wayp is not None assert wayp is not None
async def test_waypoint_import_block(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_waypoint_import_block(hass: HomeAssistant) -> None:
"""Test import of list of waypoints for blocked user.""" """Test import of list of waypoints for blocked user."""
waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy() waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy()
await send_message(hass, WAYPOINTS_TOPIC_BLOCKED, waypoints_message) await send_message(hass, WAYPOINTS_TOPIC_BLOCKED, waypoints_message)
@ -1275,7 +1311,8 @@ async def test_waypoint_import_no_whitelist(hass: HomeAssistant, setup_comp) ->
assert wayp is not None assert wayp is not None
async def test_waypoint_import_bad_json(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_waypoint_import_bad_json(hass: HomeAssistant) -> None:
"""Test importing a bad JSON payload.""" """Test importing a bad JSON payload."""
waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy() waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy()
await send_message(hass, WAYPOINTS_TOPIC, waypoints_message, True) await send_message(hass, WAYPOINTS_TOPIC, waypoints_message, True)
@ -1286,7 +1323,8 @@ async def test_waypoint_import_bad_json(hass: HomeAssistant, context) -> None:
assert wayp is None assert wayp is None
async def test_waypoint_import_existing(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_waypoint_import_existing(hass: HomeAssistant) -> None:
"""Test importing a zone that exists.""" """Test importing a zone that exists."""
waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy() waypoints_message = WAYPOINTS_EXPORTED_MESSAGE.copy()
await send_message(hass, WAYPOINTS_TOPIC, waypoints_message) await send_message(hass, WAYPOINTS_TOPIC, waypoints_message)
@ -1299,7 +1337,8 @@ async def test_waypoint_import_existing(hass: HomeAssistant, context) -> None:
assert wayp == new_wayp assert wayp == new_wayp
async def test_single_waypoint_import(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_single_waypoint_import(hass: HomeAssistant) -> None:
"""Test single waypoint message.""" """Test single waypoint message."""
waypoint_message = WAYPOINT_MESSAGE.copy() waypoint_message = WAYPOINT_MESSAGE.copy()
await send_message(hass, WAYPOINT_TOPIC, waypoint_message) await send_message(hass, WAYPOINT_TOPIC, waypoint_message)
@ -1307,7 +1346,8 @@ async def test_single_waypoint_import(hass: HomeAssistant, context) -> None:
assert wayp is not None assert wayp is not None
async def test_not_implemented_message(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_not_implemented_message(hass: HomeAssistant) -> None:
"""Handle not implemented message type.""" """Handle not implemented message type."""
patch_handler = patch( patch_handler = patch(
"homeassistant.components.owntracks.messages.async_handle_not_impl_msg", "homeassistant.components.owntracks.messages.async_handle_not_impl_msg",
@ -1318,7 +1358,8 @@ async def test_not_implemented_message(hass: HomeAssistant, context) -> None:
patch_handler.stop() patch_handler.stop()
async def test_unsupported_message(hass: HomeAssistant, context) -> None: @pytest.mark.usefixtures("context")
async def test_unsupported_message(hass: HomeAssistant) -> None:
"""Handle not implemented message type.""" """Handle not implemented message type."""
patch_handler = patch( patch_handler = patch(
"homeassistant.components.owntracks.messages.async_handle_unsupported_msg", "homeassistant.components.owntracks.messages.async_handle_unsupported_msg",