mirror of https://github.com/home-assistant/core
76 lines
2.1 KiB
Python
76 lines
2.1 KiB
Python
"""The tests for google-assistant init."""
|
|
|
|
from http import HTTPStatus
|
|
|
|
from homeassistant.components import google_assistant as ga
|
|
from homeassistant.core import Context, HomeAssistant
|
|
from homeassistant.setup import async_setup_component
|
|
|
|
from .test_http import DUMMY_CONFIG
|
|
|
|
from tests.common import MockConfigEntry
|
|
from tests.test_util.aiohttp import AiohttpClientMocker
|
|
|
|
|
|
async def test_import(hass: HomeAssistant) -> None:
|
|
"""Test import."""
|
|
|
|
await async_setup_component(
|
|
hass,
|
|
ga.DOMAIN,
|
|
{"google_assistant": DUMMY_CONFIG},
|
|
)
|
|
|
|
entries = hass.config_entries.async_entries("google_assistant")
|
|
assert len(entries) == 1
|
|
assert entries[0].data[ga.const.CONF_PROJECT_ID] == "1234"
|
|
|
|
|
|
async def test_import_changed(hass: HomeAssistant) -> None:
|
|
"""Test import with changed project id."""
|
|
|
|
old_entry = MockConfigEntry(
|
|
domain=ga.DOMAIN, data={ga.const.CONF_PROJECT_ID: "4321"}, source="import"
|
|
)
|
|
old_entry.add_to_hass(hass)
|
|
|
|
await async_setup_component(
|
|
hass,
|
|
ga.DOMAIN,
|
|
{"google_assistant": DUMMY_CONFIG},
|
|
)
|
|
await hass.async_block_till_done()
|
|
|
|
entries = hass.config_entries.async_entries("google_assistant")
|
|
assert len(entries) == 1
|
|
assert entries[0].data[ga.const.CONF_PROJECT_ID] == "1234"
|
|
|
|
|
|
async def test_request_sync_service(
|
|
aioclient_mock: AiohttpClientMocker, hass: HomeAssistant
|
|
) -> None:
|
|
"""Test that it posts to the request_sync url."""
|
|
aioclient_mock.post(
|
|
ga.const.HOMEGRAPH_TOKEN_URL,
|
|
status=HTTPStatus.OK,
|
|
json={"access_token": "1234", "expires_in": 3600},
|
|
)
|
|
|
|
aioclient_mock.post(ga.const.REQUEST_SYNC_BASE_URL, status=HTTPStatus.OK)
|
|
|
|
await async_setup_component(
|
|
hass,
|
|
"google_assistant",
|
|
{"google_assistant": DUMMY_CONFIG},
|
|
)
|
|
|
|
assert aioclient_mock.call_count == 0
|
|
await hass.services.async_call(
|
|
ga.const.DOMAIN,
|
|
ga.const.SERVICE_REQUEST_SYNC,
|
|
blocking=True,
|
|
context=Context(user_id="123"),
|
|
)
|
|
|
|
assert aioclient_mock.call_count == 2 # token + request
|