core/tests/helpers/test_location.py

46 lines
1.5 KiB
Python
Raw Normal View History

2016-02-21 19:13:40 +00:00
"""Tests Home Assistant location helpers."""
from homeassistant.const import ATTR_LATITUDE, ATTR_LONGITUDE
from homeassistant.core import State
from homeassistant.helpers import location
def test_has_location_with_invalid_states():
2018-08-19 20:29:08 +00:00
"""Set up the tests."""
for state in (None, 1, "hello", object):
assert not location.has_location(state)
2016-02-21 19:13:40 +00:00
def test_has_location_with_states_with_invalid_locations():
"""Set up the tests."""
2019-07-31 19:25:30 +00:00
state = State(
"hello.world", "invalid", {ATTR_LATITUDE: "no number", ATTR_LONGITUDE: 123.12}
)
assert not location.has_location(state)
def test_has_location_with_states_with_valid_location():
"""Set up the tests."""
2019-07-31 19:25:30 +00:00
state = State(
"hello.world", "invalid", {ATTR_LATITUDE: 123.12, ATTR_LONGITUDE: 123.12}
)
assert location.has_location(state)
def test_closest_with_no_states_with_location():
"""Set up the tests."""
2019-07-31 19:25:30 +00:00
state = State("light.test", "on")
state2 = State(
"light.test", "on", {ATTR_LATITUDE: "invalid", ATTR_LONGITUDE: 123.45}
)
state3 = State("light.test", "on", {ATTR_LONGITUDE: 123.45})
2019-07-31 19:25:30 +00:00
assert location.closest(123.45, 123.45, [state, state2, state3]) is None
def test_closest_returns_closest():
"""Test ."""
2019-07-31 19:25:30 +00:00
state = State("light.test", "on", {ATTR_LATITUDE: 124.45, ATTR_LONGITUDE: 124.45})
state2 = State("light.test", "on", {ATTR_LATITUDE: 125.45, ATTR_LONGITUDE: 125.45})
assert state == location.closest(123.45, 123.45, [state, state2])