Upgrade aiohue and fix race condition (#13475)

* Bump aiohue to 1.3

* Store bridge in hass.data before setting up platform

* Fix tests
This commit is contained in:
Paulus Schoutsen 2018-03-26 16:07:22 -07:00 committed by GitHub
parent 08bcf84170
commit f1d37fc849
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 9 deletions

View file

@ -21,7 +21,7 @@ from homeassistant.helpers import discovery, aiohttp_client
from homeassistant import config_entries
from homeassistant.util.json import save_json
REQUIREMENTS = ['aiohue==1.2.0']
REQUIREMENTS = ['aiohue==1.3.0']
_LOGGER = logging.getLogger(__name__)
@ -145,7 +145,6 @@ async def async_setup_bridge(
bridge = HueBridge(host, hass, filename, username, allow_unreachable,
allow_hue_groups)
await bridge.async_setup()
hass.data[DOMAIN][host] = bridge
def _find_username_from_config(hass, filename):
@ -209,6 +208,8 @@ class HueBridge(object):
self.host)
return
self.hass.data[DOMAIN][self.host] = self
# If we came here and configuring this host, mark as done
if self.config_request_id:
request_id = self.config_request_id

View file

@ -74,7 +74,7 @@ aiodns==1.1.1
aiohttp_cors==0.7.0
# homeassistant.components.hue
aiohue==1.2.0
aiohue==1.3.0
# homeassistant.components.sensor.imap
aioimaplib==0.7.13

View file

@ -35,7 +35,7 @@ aioautomatic==0.6.5
aiohttp_cors==0.7.0
# homeassistant.components.hue
aiohue==1.2.0
aiohue==1.3.0
# homeassistant.components.notify.apns
apns2==0.3.0

View file

@ -66,6 +66,7 @@ async def test_only_create_no_username(hass):
async def test_configurator_callback(hass, mock_request):
"""."""
hass.data[hue.DOMAIN] = {}
with patch('aiohue.Bridge.create_user',
side_effect=aiohue.LinkButtonNotPressed):
await MockBridge(hass).async_setup()

View file

@ -18,7 +18,6 @@ async def test_setup_with_multiple_hosts(hass, mock_bridge):
assert len(mock_bridge.mock_calls) == 2
hosts = sorted(mock_call[1][0] for mock_call in mock_bridge.mock_calls)
assert hosts == ['127.0.0.1', '192.168.1.10']
assert len(hass.data[hue.DOMAIN]) == 2
async def test_bridge_discovered(hass, mock_bridge):
@ -33,7 +32,6 @@ async def test_bridge_discovered(hass, mock_bridge):
assert len(mock_bridge.mock_calls) == 1
assert mock_bridge.mock_calls[0][1][0] == '192.168.1.10'
assert len(hass.data[hue.DOMAIN]) == 1
async def test_bridge_configure_and_discovered(hass, mock_bridge):
@ -48,7 +46,7 @@ async def test_bridge_configure_and_discovered(hass, mock_bridge):
assert len(mock_bridge.mock_calls) == 1
assert mock_bridge.mock_calls[0][1][0] == '192.168.1.10'
assert len(hass.data[hue.DOMAIN]) == 1
hass.data[hue.DOMAIN] = {'192.168.1.10': {}}
mock_bridge.reset_mock()
@ -59,7 +57,6 @@ async def test_bridge_configure_and_discovered(hass, mock_bridge):
await hass.async_block_till_done()
assert len(mock_bridge.mock_calls) == 0
assert len(hass.data[hue.DOMAIN]) == 1
async def test_setup_no_host(hass, aioclient_mock):
@ -71,4 +68,3 @@ async def test_setup_no_host(hass, aioclient_mock):
assert result
assert len(aioclient_mock.mock_calls) == 1
assert len(hass.data[hue.DOMAIN]) == 0