Use Nabu Casa url if no https url set (#26682)

* Use Nabu Casa url if no https url set

* Update test_home_assistant_cast.py
pull/26690/head
Paulus Schoutsen 2019-09-17 01:23:31 -06:00 committed by Pascal Vizeli
parent 771c674e90
commit 0ef79da281
2 changed files with 34 additions and 2 deletions

View File

@ -40,10 +40,20 @@ async def async_setup_ha_cast(
async def handle_show_view(call: core.ServiceCall):
"""Handle a Show View service call."""
hass_url = hass.config.api.base_url
# Home Assistant Cast only works with https urls. If user has no configured
# base url, use their remote url.
if not hass_url.lower().startswith("https://"):
try:
hass_url = hass.components.cloud.async_remote_ui_url()
except hass.components.cloud.CloudNotAvailable:
pass
controller = HomeAssistantController(
# If you are developing Home Assistant Cast, uncomment and set to your dev app id.
# app_id="5FE44367",
hass_url=hass.config.api.base_url,
hass_url=hass_url,
client_id=None,
refresh_token=refresh_token.token,
)

View File

@ -1,5 +1,5 @@
"""Test Home Assistant Cast."""
from unittest.mock import Mock
from unittest.mock import Mock, patch
from homeassistant.components.cast import home_assistant_cast
from tests.common import MockConfigEntry, async_mock_signal
@ -26,3 +26,25 @@ async def test_service_show_view(hass):
assert controller.supporting_app_id == "B12CE3CA"
assert entity_id == "media_player.kitchen"
assert view_path == "mock_path"
async def test_use_cloud_url(hass):
"""Test that we fall back to cloud url."""
hass.config.api = Mock(base_url="http://example.com")
await home_assistant_cast.async_setup_ha_cast(hass, MockConfigEntry())
calls = async_mock_signal(hass, home_assistant_cast.SIGNAL_HASS_CAST_SHOW_VIEW)
with patch(
"homeassistant.components.cloud.async_remote_ui_url",
return_value="https://something.nabu.acas",
):
await hass.services.async_call(
"cast",
"show_lovelace_view",
{"entity_id": "media_player.kitchen", "view_path": "mock_path"},
blocking=True,
)
assert len(calls) == 1
controller = calls[0][0]
assert controller.hass_url == "https://something.nabu.acas"