Bump pychromecast to 6.0.0 (#36414)

* Revert "Prevent race in pychromecast.start_discovery (#36350)"

This reverts commit 391983a0cf.

* Adapt to pychromecast 6.0.0
pull/36626/head
Erik Montnemery 2020-06-04 20:32:00 +02:00 committed by Paulus Schoutsen
parent 4b1761ccb5
commit c987ca735e
5 changed files with 24 additions and 33 deletions

View File

@ -3,7 +3,6 @@ import logging
import threading
import pychromecast
import zeroconf
from homeassistant.const import EVENT_HOMEASSISTANT_STOP
from homeassistant.core import HomeAssistant
@ -85,14 +84,12 @@ def setup_internal_discovery(hass: HomeAssistant) -> None:
)
_LOGGER.debug("Starting internal pychromecast discovery.")
listener = pychromecast.discovery.CastListener(
internal_add_callback, internal_remove_callback
)
browser = zeroconf.ServiceBrowser(
ChromeCastZeroconf.get_zeroconf() or zeroconf.Zeroconf(),
"_googlecast._tcp.local.",
listener,
listener = pychromecast.CastListener(
internal_add_callback,
internal_remove_callback,
internal_add_callback, # Use internal_add_callback also for updates
)
browser = pychromecast.start_discovery(listener, ChromeCastZeroconf.get_zeroconf())
def stop_discovery(event):
"""Stop discovery of new chromecasts."""

View File

@ -3,7 +3,7 @@
"name": "Google Cast",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/cast",
"requirements": ["pychromecast==5.3.0"],
"requirements": ["pychromecast==6.0.0"],
"after_dependencies": ["cloud","zeroconf"],
"zeroconf": ["_googlecast._tcp.local."],
"codeowners": ["@emontnemery"]

View File

@ -1245,7 +1245,7 @@ pycfdns==0.0.1
pychannels==1.0.0
# homeassistant.components.cast
pychromecast==5.3.0
pychromecast==6.0.0
# homeassistant.components.cmus
pycmus==0.1.1

View File

@ -539,7 +539,7 @@ pyblackbird==0.5
pybotvac==0.0.17
# homeassistant.components.cast
pychromecast==5.3.0
pychromecast==6.0.0
# homeassistant.components.coolmaster
pycoolmasternet==0.0.4

View File

@ -80,17 +80,17 @@ async def async_setup_cast_internal_discovery(hass, config=None, discovery_info=
browser = MagicMock(zc={})
with patch(
"homeassistant.components.cast.discovery.pychromecast.discovery.CastListener",
"homeassistant.components.cast.discovery.pychromecast.CastListener",
return_value=listener,
) as cast_listener, patch(
"homeassistant.components.cast.discovery.zeroconf.ServiceBrowser",
"homeassistant.components.cast.discovery.pychromecast.start_discovery",
return_value=browser,
):
) as start_discovery:
add_entities = await async_setup_cast(hass, config, discovery_info)
await hass.async_block_till_done()
await hass.async_block_till_done()
assert cast_listener.call_count == 1
assert start_discovery.call_count == 1
discovery_callback = cast_listener.call_args[0][0]
@ -120,10 +120,10 @@ async def async_setup_media_player_cast(hass: HomeAssistantType, info: Chromecas
"homeassistant.components.cast.discovery.pychromecast.get_chromecast_from_service",
return_value=chromecast,
) as get_chromecast, patch(
"homeassistant.components.cast.discovery.pychromecast.discovery.CastListener",
"homeassistant.components.cast.discovery.pychromecast.CastListener",
return_value=listener,
) as cast_listener, patch(
"homeassistant.components.cast.discovery.zeroconf.ServiceBrowser",
"homeassistant.components.cast.discovery.pychromecast.start_discovery",
return_value=browser,
):
await async_setup_component(
@ -159,17 +159,15 @@ async def async_setup_media_player_cast(hass: HomeAssistantType, info: Chromecas
async def test_start_discovery_called_once(hass):
"""Test pychromecast.start_discovery called exactly once."""
with patch(
"homeassistant.components.cast.discovery.pychromecast.discovery.CastListener",
) as cast_listener, patch(
"homeassistant.components.cast.discovery.zeroconf.ServiceBrowser",
"homeassistant.components.cast.discovery.pychromecast.start_discovery",
return_value=Mock(),
):
) as start_discovery:
await async_setup_cast(hass)
assert cast_listener.call_count == 1
assert start_discovery.call_count == 1
await async_setup_cast(hass)
assert cast_listener.call_count == 1
assert start_discovery.call_count == 1
async def test_stop_discovery_called_on_stop(hass):
@ -177,15 +175,13 @@ async def test_stop_discovery_called_on_stop(hass):
browser = MagicMock(zc={})
with patch(
"homeassistant.components.cast.discovery.pychromecast.discovery.CastListener",
) as cast_listener, patch(
"homeassistant.components.cast.discovery.zeroconf.ServiceBrowser",
"homeassistant.components.cast.discovery.pychromecast.start_discovery",
return_value=browser,
):
) as start_discovery:
# start_discovery should be called with empty config
await async_setup_cast(hass, {})
assert cast_listener.call_count == 1
assert start_discovery.call_count == 1
with patch(
"homeassistant.components.cast.discovery.pychromecast.stop_discovery"
@ -197,15 +193,13 @@ async def test_stop_discovery_called_on_stop(hass):
stop_discovery.assert_called_once_with(browser)
with patch(
"homeassistant.components.cast.discovery.pychromecast.discovery.CastListener",
) as cast_listener, patch(
"homeassistant.components.cast.discovery.zeroconf.ServiceBrowser",
"homeassistant.components.cast.discovery.pychromecast.start_discovery",
return_value=browser,
):
) as start_discovery:
# start_discovery should be called again on re-startup
await async_setup_cast(hass)
assert cast_listener.call_count == 1
assert start_discovery.call_count == 1
async def test_create_cast_device_without_uuid(hass):