Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Person tests split from #21307 #22663

Merged
merged 1 commit into from Apr 3, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
43 changes: 27 additions & 16 deletions tests/components/person/test_init.py
@@ -1,24 +1,26 @@
"""The tests for the person component."""
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 (
ATTR_SOURCE, ATTR_USER_ID, DOMAIN, PersonManager)
from homeassistant.const import (
ATTR_ID, ATTR_LATITUDE, ATTR_LONGITUDE, ATTR_GPS_ACCURACY,
STATE_UNKNOWN, EVENT_HOMEASSISTANT_START)
from homeassistant.components.device_tracker import (
ATTR_SOURCE_TYPE, SOURCE_TYPE_GPS, SOURCE_TYPE_ROUTER)
ATTR_GPS_ACCURACY, ATTR_ID, ATTR_LATITUDE, ATTR_LONGITUDE,
EVENT_HOMEASSISTANT_START, STATE_UNKNOWN)
from homeassistant.core import CoreState, State
from homeassistant.setup import async_setup_component

import pytest

from tests.common import mock_component, mock_restore_cache, mock_coro_func
from tests.common import (
assert_setup_component, mock_component, mock_coro_func, mock_restore_cache)

DEVICE_TRACKER = 'device_tracker.test_tracker'
DEVICE_TRACKER_2 = 'device_tracker.test_tracker_2'


# pylint: disable=redefined-outer-name
@pytest.fixture
def storage_setup(hass, hass_storage, hass_admin_user):
"""Storage setup."""
Expand All @@ -44,7 +46,8 @@ def storage_setup(hass, hass_storage, hass_admin_user):
async def test_minimal_setup(hass):
"""Test minimal config with only name."""
config = {DOMAIN: {'id': '1234', 'name': 'test person'}}
assert await async_setup_component(hass, DOMAIN, config)
with assert_setup_component(1):
MartinHjelmare marked this conversation as resolved.
Show resolved Hide resolved
assert await async_setup_component(hass, DOMAIN, config)

state = hass.states.get('person.test_person')
assert state.state == STATE_UNKNOWN
Expand All @@ -71,7 +74,8 @@ async def test_setup_user_id(hass, hass_admin_user):
user_id = hass_admin_user.id
config = {
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')
assert state.state == STATE_UNKNOWN
Expand All @@ -88,7 +92,8 @@ async def test_valid_invalid_user_ids(hass, hass_admin_user):
config = {DOMAIN: [
{'id': '1234', 'name': 'test valid user', 'user_id': 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')
assert state.state == STATE_UNKNOWN
Expand All @@ -108,7 +113,8 @@ async def test_setup_tracker(hass, hass_admin_user):
config = {DOMAIN: {
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
'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')
assert state.state == STATE_UNKNOWN
Expand Down Expand Up @@ -159,7 +165,8 @@ async def test_setup_two_trackers(hass, hass_admin_user):
config = {DOMAIN: {
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
'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')
assert state.state == STATE_UNKNOWN
Expand Down Expand Up @@ -231,7 +238,8 @@ async def test_ignore_unavailable_states(hass, hass_admin_user):
config = {DOMAIN: {
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
'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')
assert state.state == STATE_UNKNOWN
Expand Down Expand Up @@ -275,7 +283,8 @@ async def test_restore_home_state(hass, hass_admin_user):
config = {DOMAIN: {
'id': '1234', 'name': 'tracked person', 'user_id': user_id,
'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')
assert state.state == 'home'
Expand All @@ -292,7 +301,8 @@ async def test_duplicate_ids(hass, hass_admin_user):
config = {DOMAIN: [
{'id': '1234', 'name': 'test user 1'},
{'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 hass.states.get('person.test_user_1') is not None
Expand All @@ -302,7 +312,8 @@ async def test_duplicate_ids(hass, hass_admin_user):
async def test_create_person_during_run(hass):
"""Test that person is updated if created while hass is running."""
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')
await hass.async_block_till_done()

Expand Down