mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
parent
e736521e9f
commit
f2941522ca
@ -1,24 +1,26 @@
|
|||||||
"""The tests for the person component."""
|
"""The tests for the person component."""
|
||||||
from unittest.mock import Mock
|
from unittest.mock import Mock
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from homeassistant.components.device_tracker import (
|
||||||
|
ATTR_SOURCE_TYPE, SOURCE_TYPE_GPS, SOURCE_TYPE_ROUTER)
|
||||||
from homeassistant.components.person import (
|
from homeassistant.components.person import (
|
||||||
ATTR_SOURCE, ATTR_USER_ID, DOMAIN, PersonManager)
|
ATTR_SOURCE, ATTR_USER_ID, DOMAIN, PersonManager)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_ID, ATTR_LATITUDE, ATTR_LONGITUDE, ATTR_GPS_ACCURACY,
|
ATTR_GPS_ACCURACY, ATTR_ID, ATTR_LATITUDE, ATTR_LONGITUDE,
|
||||||
STATE_UNKNOWN, EVENT_HOMEASSISTANT_START)
|
EVENT_HOMEASSISTANT_START, STATE_UNKNOWN)
|
||||||
from homeassistant.components.device_tracker import (
|
|
||||||
ATTR_SOURCE_TYPE, SOURCE_TYPE_GPS, SOURCE_TYPE_ROUTER)
|
|
||||||
from homeassistant.core import CoreState, State
|
from homeassistant.core import CoreState, State
|
||||||
from homeassistant.setup import async_setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
|
|
||||||
import pytest
|
from tests.common import (
|
||||||
|
assert_setup_component, mock_component, mock_coro_func, mock_restore_cache)
|
||||||
from tests.common import mock_component, mock_restore_cache, mock_coro_func
|
|
||||||
|
|
||||||
DEVICE_TRACKER = 'device_tracker.test_tracker'
|
DEVICE_TRACKER = 'device_tracker.test_tracker'
|
||||||
DEVICE_TRACKER_2 = 'device_tracker.test_tracker_2'
|
DEVICE_TRACKER_2 = 'device_tracker.test_tracker_2'
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable=redefined-outer-name
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def storage_setup(hass, hass_storage, hass_admin_user):
|
def storage_setup(hass, hass_storage, hass_admin_user):
|
||||||
"""Storage setup."""
|
"""Storage setup."""
|
||||||
@ -44,7 +46,8 @@ def storage_setup(hass, hass_storage, hass_admin_user):
|
|||||||
async def test_minimal_setup(hass):
|
async def test_minimal_setup(hass):
|
||||||
"""Test minimal config with only name."""
|
"""Test minimal config with only name."""
|
||||||
config = {DOMAIN: {'id': '1234', 'name': 'test person'}}
|
config = {DOMAIN: {'id': '1234', 'name': 'test person'}}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(1):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
state = hass.states.get('person.test_person')
|
state = hass.states.get('person.test_person')
|
||||||
assert state.state == STATE_UNKNOWN
|
assert state.state == STATE_UNKNOWN
|
||||||
@ -71,7 +74,8 @@ async def test_setup_user_id(hass, hass_admin_user):
|
|||||||
user_id = hass_admin_user.id
|
user_id = hass_admin_user.id
|
||||||
config = {
|
config = {
|
||||||
DOMAIN: {'id': '1234', 'name': 'test person', 'user_id': user_id}}
|
DOMAIN: {'id': '1234', 'name': 'test person', 'user_id': user_id}}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(1):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
state = hass.states.get('person.test_person')
|
state = hass.states.get('person.test_person')
|
||||||
assert state.state == STATE_UNKNOWN
|
assert state.state == STATE_UNKNOWN
|
||||||
@ -88,7 +92,8 @@ async def test_valid_invalid_user_ids(hass, hass_admin_user):
|
|||||||
config = {DOMAIN: [
|
config = {DOMAIN: [
|
||||||
{'id': '1234', 'name': 'test valid user', 'user_id': user_id},
|
{'id': '1234', 'name': 'test valid user', 'user_id': user_id},
|
||||||
{'id': '5678', 'name': 'test bad user', 'user_id': 'bad_user_id'}]}
|
{'id': '5678', 'name': 'test bad user', 'user_id': 'bad_user_id'}]}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(2):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
state = hass.states.get('person.test_valid_user')
|
state = hass.states.get('person.test_valid_user')
|
||||||
assert state.state == STATE_UNKNOWN
|
assert state.state == STATE_UNKNOWN
|
||||||
@ -108,7 +113,8 @@ async def test_setup_tracker(hass, hass_admin_user):
|
|||||||
config = {DOMAIN: {
|
config = {DOMAIN: {
|
||||||
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
||||||
'device_trackers': DEVICE_TRACKER}}
|
'device_trackers': DEVICE_TRACKER}}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(1):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
state = hass.states.get('person.tracked_person')
|
state = hass.states.get('person.tracked_person')
|
||||||
assert state.state == STATE_UNKNOWN
|
assert state.state == STATE_UNKNOWN
|
||||||
@ -159,7 +165,8 @@ async def test_setup_two_trackers(hass, hass_admin_user):
|
|||||||
config = {DOMAIN: {
|
config = {DOMAIN: {
|
||||||
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
||||||
'device_trackers': [DEVICE_TRACKER, DEVICE_TRACKER_2]}}
|
'device_trackers': [DEVICE_TRACKER, DEVICE_TRACKER_2]}}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(1):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
state = hass.states.get('person.tracked_person')
|
state = hass.states.get('person.tracked_person')
|
||||||
assert state.state == STATE_UNKNOWN
|
assert state.state == STATE_UNKNOWN
|
||||||
@ -231,7 +238,8 @@ async def test_ignore_unavailable_states(hass, hass_admin_user):
|
|||||||
config = {DOMAIN: {
|
config = {DOMAIN: {
|
||||||
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
||||||
'device_trackers': [DEVICE_TRACKER, DEVICE_TRACKER_2]}}
|
'device_trackers': [DEVICE_TRACKER, DEVICE_TRACKER_2]}}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(1):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
state = hass.states.get('person.tracked_person')
|
state = hass.states.get('person.tracked_person')
|
||||||
assert state.state == STATE_UNKNOWN
|
assert state.state == STATE_UNKNOWN
|
||||||
@ -275,7 +283,8 @@ async def test_restore_home_state(hass, hass_admin_user):
|
|||||||
config = {DOMAIN: {
|
config = {DOMAIN: {
|
||||||
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
|
||||||
'device_trackers': DEVICE_TRACKER}}
|
'device_trackers': DEVICE_TRACKER}}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(1):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
state = hass.states.get('person.tracked_person')
|
state = hass.states.get('person.tracked_person')
|
||||||
assert state.state == 'home'
|
assert state.state == 'home'
|
||||||
@ -292,7 +301,8 @@ async def test_duplicate_ids(hass, hass_admin_user):
|
|||||||
config = {DOMAIN: [
|
config = {DOMAIN: [
|
||||||
{'id': '1234', 'name': 'test user 1'},
|
{'id': '1234', 'name': 'test user 1'},
|
||||||
{'id': '1234', 'name': 'test user 2'}]}
|
{'id': '1234', 'name': 'test user 2'}]}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(2):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
|
|
||||||
assert len(hass.states.async_entity_ids('person')) == 1
|
assert len(hass.states.async_entity_ids('person')) == 1
|
||||||
assert hass.states.get('person.test_user_1') is not None
|
assert hass.states.get('person.test_user_1') is not None
|
||||||
@ -302,7 +312,8 @@ async def test_duplicate_ids(hass, hass_admin_user):
|
|||||||
async def test_create_person_during_run(hass):
|
async def test_create_person_during_run(hass):
|
||||||
"""Test that person is updated if created while hass is running."""
|
"""Test that person is updated if created while hass is running."""
|
||||||
config = {DOMAIN: {}}
|
config = {DOMAIN: {}}
|
||||||
assert await async_setup_component(hass, DOMAIN, config)
|
with assert_setup_component(0):
|
||||||
|
assert await async_setup_component(hass, DOMAIN, config)
|
||||||
hass.states.async_set(DEVICE_TRACKER, 'home')
|
hass.states.async_set(DEVICE_TRACKER, 'home')
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user