Add HassIO to discovery component (#7195)

* Add HassIO to autodiscovery

* Fix tests

* fix tests

* fix test v2

* fix mock test

* call
This commit is contained in:
Pascal Vizeli 2017-04-21 03:45:15 +02:00 committed by Paulus Schoutsen
parent bbeb64eb24
commit f641287aa2
2 changed files with 23 additions and 0 deletions

View file

@ -10,6 +10,7 @@ import asyncio
import json
from datetime import timedelta
import logging
import os
import voluptuous as vol
@ -29,12 +30,14 @@ SERVICE_NETGEAR = 'netgear_router'
SERVICE_WEMO = 'belkin_wemo'
SERVICE_HASS_IOS_APP = 'hass_ios'
SERVICE_IKEA_TRADFRI = 'ikea_tradfri'
SERVICE_HASSIO = 'hassio'
SERVICE_HANDLERS = {
SERVICE_HASS_IOS_APP: ('ios', None),
SERVICE_NETGEAR: ('device_tracker', None),
SERVICE_WEMO: ('wemo', None),
SERVICE_IKEA_TRADFRI: ('tradfri', None),
SERVICE_HASSIO: ('hassio', None),
'philips_hue': ('light', 'hue'),
'google_cast': ('media_player', 'cast'),
'panasonic_viera': ('media_player', 'panasonic_viera'),
@ -124,6 +127,10 @@ def async_setup(hass, config):
"""Schedule the first discovery when Home Assistant starts up."""
async_track_point_in_utc_time(hass, scan_devices, dt_util.utcnow())
# discovery local services
if 'HASSIO' in os.environ:
hass.async_add_job(new_service_found(SERVICE_HASSIO, {}))
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, schedule_first)
return True

View file

@ -1,5 +1,6 @@
"""The tests for the discovery component."""
import asyncio
import os
from unittest.mock import patch
@ -128,3 +129,18 @@ def test_discover_duplicates(hass):
mock_discover.assert_called_with(
hass, SERVICE_NO_PLATFORM, SERVICE_INFO,
SERVICE_NO_PLATFORM_COMPONENT, BASE_CONFIG)
@asyncio.coroutine
def test_load_component_hassio(hass):
"""Test load hassio component."""
def discover(netdisco):
"""Fake discovery."""
return []
with patch.dict(os.environ, {'HASSIO': "FAKE_HASSIO"}), \
patch('homeassistant.components.hassio.async_setup',
return_value=mock_coro(return_value=True)) as mock_hassio:
yield from mock_discovery(hass, discover)
assert mock_hassio.called