8000 0.42.1 by balloob · Pull Request #6993 · home-assistant/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

0.42.1 #6993

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

Merged
merged 3 commits into from
Apr 9, 2017
Merged

0.42.1 #6993

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions homeassistant/components/discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

import voluptuous as vol

from homeassistant.core import callback
from homeassistant.const import EVENT_HOMEASSISTANT_START
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import async_track_point_in_utc_time
Expand Down Expand Up @@ -105,7 +106,7 @@ def new_service_found(service, info):
hass, component, platform, info, config)

@asyncio.coroutine
def scan_devices(_):
def scan_devices(now):
"""Scan for devices."""
results = yield from hass.loop.run_in_executor(
None, _discover, netdisco)
Expand All @@ -116,7 +117,12 @@ def scan_devices(_):
async_track_point_in_utc_time(hass, scan_devices,
dt_util.utcnow() + SCAN_INTERVAL)

hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, scan_devices)
@callback
def schedule_first(event):
"""Schedule the first discovery when Home Assistant starts up."""
async_track_point_in_utc_time(hass, scan_devices, dt_util.utcnow())

hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, schedule_first)

return True

Expand Down
2 changes: 1 addition & 1 deletion homeassistant/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"""Constants used by Home Assistant components."""
MAJOR_VERSION = 0
MINOR_VERSION = 42
PATCH_VERSION = '0'
PATCH_VERSION = '1'
__short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION)
__version__ = '{}.{}'.format(__short_version__, PATCH_VERSION)
REQUIRED_PYTHON_VER = (3, 4, 2)
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/package_constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ pip>=7.1.0
jinja2>=2.9.5
voluptuous==0.9.3
typing>=3,<4
aiohttp==2.0.5
aiohttp==2.0.6
async_timeout==1.2.0
2 changes: 1 addition & 1 deletion requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pip>=7.1.0
jinja2>=2.9.5
voluptuous==0.9.3
typing>=3,<4
aiohttp==2.0.5
aiohttp==2.0.6
async_timeout==1.2.0

# homeassistant.components.nuimo_controller
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
'jinja2>=2.9.5',
'voluptuous==0.9.3',
'typing>=3,<4',
'aiohttp==2.0.5',
'aiohttp==2.0.6',
'async_timeout==1.2.0',
]

Expand Down
79 changes: 27 additions & 52 deletions tests/components/test_discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

from homeassistant.bootstrap import async_setup_component
from homeassistant.components import discovery
from homeassistant.const import EVENT_HOMEASSISTANT_START
from homeassistant.util.dt import utcnow

from tests.common import mock_coro
from tests.common import mock_coro, fire_time_changed

# One might consider to "mock" services, but it's easy enough to just use
# what is already available.
Expand All @@ -34,46 +34,47 @@


@asyncio.coroutine
def test_unknown_service(hass):
"""Test that unknown service is ignored."""
result = yield from async_setup_component(hass, 'discovery', {
'discovery': {},
})
def mock_discovery(hass, discoveries, config=BASE_CONFIG):
"""Helper to mock discoveries."""
result = yield from async_setup_component(hass, 'discovery', config)
assert result

def discover(netdisco):
"""Fake discovery."""
return [('this_service_will_never_be_supported', {'info': 'some'})]
yield from hass.async_start()

with patch.object(discovery, '_discover', discover), \
with patch.object(discovery, '_discover', discoveries), \
patch('homeassistant.components.discovery.async_discover',
return_value=mock_coro()) as mock_discover, \
patch('homeassistant.components.discovery.async_load_platform',
return_value=mock_coro()) as mock_platform:
hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
fire_time_changed(hass, utcnow())
# Work around an issue where our loop.call_soon not get caught
yield from hass.async_block_till_done()
yield from hass.async_block_till_done()

return mock_discover, mock_platform


@asyncio.coroutine
def test_unknown_service(hass):
"""Test that unknown service is ignored."""
def discover(netdisco):
"""Fake discovery."""
return [('this_service_will_never_be_supported', {'info': 'some'})]

mock_discover, mock_platform = yield from mock_discovery(hass, discover)

assert not mock_discover.called
assert not mock_platform.called


@asyncio.coroutine
def test_load_platform(hass):
"""Test load a platform."""
result = yield from async_setup_component(hass, 'discovery', BASE_CONFIG)
assert result

def discover(netdisco):
"""Fake discovery."""
return [(SERVICE, SERVICE_INFO)]

with patch.object(discovery, '_discover', discover), \
patch('homeassistant.components.discovery.async_discover',
return_value=mock_coro()) as mock_discover, \
patch('homeassistant.components.discovery.async_load_platform',
return_value=mock_coro()) as mock_platform:
hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
yield from hass.async_block_till_done()
mock_discover, mock_platform = yield from mock_discovery(hass, discover)

assert not mock_discover.called
assert mock_platform.called
Expand All @@ -84,20 +85,11 @@ def discover(netdisco):
@asyncio.coroutine
def test_load_component(hass):
"""Test load a component."""
result = yield from async_setup_component(hass, 'discovery', BASE_CONFIG)
assert result

def discover(netdisco):
"""Fake discovery."""
return [(SERVICE_NO_PLATFORM, SERVICE_INFO)]

with patch.object(discovery, '_discover', discover), \
patch('homeassistant.components.discovery.async_discover',
return_value=mock_coro()) as mock_discover, \
patch('homeassistant.components.discovery.async_load_platform',
return_value=mock_coro()) as mock_platform:
hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
yield from hass.async_block_till_done()
mock_discover, mock_platform = yield from mock_discovery(hass, discover)

assert mock_discover.called
assert not mock_platform.called
Expand All @@ -109,20 +101,12 @@ def discover(netdisco):
@asyncio.coroutine
def test_ignore_service(hass):
"""Test ignore service."""
result = yield from async_setup_component(hass, 'discovery', IGNORE_CONFIG)
assert result

def discover(netdisco):
"""Fake discovery."""
return [(SERVICE_NO_PLATFORM, SERVICE_INFO)]

with patch.object(discovery, '_discover', discover), \
patch('homeassistant.components.discovery.async_discover',
return_value=mock_coro()) as mock_discover, \
patch('homeassistant.components.discovery.async_load_platform',
return_value=mock_coro()) as mock_platform:
hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
yield from hass.async_block_till_done()
mock_discover, mock_platform = yield from mock_discovery(hass, discover,
IGNORE_CONFIG)

assert not mock_discover.called
assert not mock_platform.called
Expand All @@ -131,21 +115,12 @@ def discover(netdisco):
@asyncio.coroutine
def test_discover_duplicates(hass):
"""Test load a component."""
result = yield from async_setup_component(hass, 'discovery', BASE_CONFIG)
assert result

def discover(netdisco):
"""Fake discovery."""
return [(SERVICE_NO_PLATFORM, SERVICE_INFO),
(SERVICE_NO_PLATFORM, SERVICE_INFO)]

with patch.object(discovery, '_discover', discover), \
patch('homeassistant.components.discovery.async_discover',
return_value=mock_coro()) as mock_discover, \
patch('homeassistant.components.discovery.async_load_platform',
return_value=mock_coro()) as mock_platform:
hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
yield from hass.async_block_till_done()
mock_discover, mock_platform = yield from mock_discovery(hass, discover)

assert mock_discover.called
assert mock_discover.call_count == 1
Expand Down
0