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

0.95.1 #24787

Merged
merged 4 commits into from
Jun 27, 2019
Merged

0.95.1 #24787

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
4 changes: 2 additions & 2 deletions homeassistant/components/cloud/http_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from .const import (
DOMAIN, REQUEST_TIMEOUT, PREF_ENABLE_ALEXA, PREF_ENABLE_GOOGLE,
PREF_GOOGLE_SECURE_DEVICES_PIN, InvalidTrustedNetworks,
InvalidTrustedProxies, PREF_ALEXA_REPORT_STATE)
InvalidTrustedProxies, PREF_ALEXA_REPORT_STATE, RequireRelink)

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -388,7 +388,7 @@ async def websocket_update_prefs(hass, connection, msg):
connection.send_error(msg['id'], 'alexa_timeout',
'Timeout validating Alexa access token.')
return
except alexa_errors.NoTokenAvailable:
except (alexa_errors.NoTokenAvailable, RequireRelink):
connection.send_error(
msg['id'], 'alexa_relink',
'Please go to the Alexa app and re-link the Home Assistant '
Expand Down
7 changes: 5 additions & 2 deletions homeassistant/components/life360/device_tracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@ def _prev_seen(self, dev_id, last_seen):
return prev_seen

def _update_member(self, member, dev_id):
loc = member.get('location', {})
last_seen = _utc_from_ts(loc.get('timestamp'))
loc = member.get('location')
try:
last_seen = _utc_from_ts(loc.get('timestamp'))
except AttributeError:
last_seen = None
prev_seen = self._prev_seen(dev_id, last_seen)

if not loc:
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/wink/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"name": "Wink",
"documentation": "https://www.home-assistant.io/components/wink",
"requirements": [
"pubnubsub-handler==1.0.7",
"pubnubsub-handler==1.0.8",
"python-wink==1.10.5"
],
"dependencies": ["configurator"],
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 = 95
PATCH_VERSION = '0'
PATCH_VERSION = '1'
__short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION)
__version__ = '{}.{}'.format(__short_version__, PATCH_VERSION)
REQUIRED_PYTHON_VER = (3, 5, 3)
Expand Down
2 changes: 1 addition & 1 deletion requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -942,7 +942,7 @@ psutil==5.6.2
ptvsd==4.2.8

# homeassistant.components.wink
pubnubsub-handler==1.0.7
pubnubsub-handler==1.0.8

# homeassistant.components.pushbullet
pushbullet.py==0.11.0
Expand Down
40 changes: 39 additions & 1 deletion tests/components/cloud/test_http_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from homeassistant.auth.providers import trusted_networks as tn_auth
from homeassistant.components.cloud.const import (
PREF_ENABLE_GOOGLE, PREF_ENABLE_ALEXA, PREF_GOOGLE_SECURE_DEVICES_PIN,
DOMAIN)
DOMAIN, RequireRelink)
from homeassistant.components.google_assistant.helpers import (
GoogleEntity)
from homeassistant.components.alexa.entities import LightCapabilities
Expand Down Expand Up @@ -527,6 +527,44 @@ async def test_websocket_update_preferences(hass, hass_ws_client,
assert setup_api[PREF_GOOGLE_SECURE_DEVICES_PIN] == '1234'


async def test_websocket_update_preferences_require_relink(
hass, hass_ws_client, aioclient_mock, setup_api, mock_cloud_login):
"""Test updating preference requires relink."""
client = await hass_ws_client(hass)

with patch('homeassistant.components.cloud.alexa_config.AlexaConfig'
'.async_get_access_token',
side_effect=RequireRelink):
await client.send_json({
'id': 5,
'type': 'cloud/update_prefs',
'alexa_report_state': True,
})
response = await client.receive_json()

assert not response['success']
assert response['error']['code'] == 'alexa_relink'


async def test_websocket_update_preferences_no_token(
hass, hass_ws_client, aioclient_mock, setup_api, mock_cloud_login):
"""Test updating preference no token available."""
client = await hass_ws_client(hass)

with patch('homeassistant.components.cloud.alexa_config.AlexaConfig'
'.async_get_access_token',
side_effect=alexa_errors.NoTokenAvailable):
await client.send_json({
'id': 5,
'type': 'cloud/update_prefs',
'alexa_report_state': True,
})
response = await client.receive_json()

assert not response['success']
assert response['error']['code'] == 'alexa_relink'


async def test_enabling_webhook(hass, hass_ws_client, setup_api,
mock_cloud_login):
"""Test we call right code to enable webhooks."""
Expand Down