core/tests/components/netatmo/test_diagnostics.py

40 lines
1.4 KiB
Python
Raw Normal View History

"""Test the Netatmo diagnostics."""
from unittest.mock import AsyncMock, patch
from syrupy import SnapshotAssertion
from syrupy.filters import paths
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
from .common import fake_post_request
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
async def test_entry_diagnostics(
hass: HomeAssistant,
hass_client: ClientSessionGenerator,
snapshot: SnapshotAssertion,
config_entry,
) -> None:
"""Test config entry diagnostics."""
with patch(
"homeassistant.components.netatmo.api.AsyncConfigEntryNetatmoAuth",
) as mock_auth, patch(
"homeassistant.helpers.config_entry_oauth2_flow.async_get_config_entry_implementation",
), patch(
"homeassistant.components.netatmo.webhook_generate_url",
):
mock_auth.return_value.async_post_api_request.side_effect = fake_post_request
mock_auth.return_value.async_addwebhook.side_effect = AsyncMock()
mock_auth.return_value.async_dropwebhook.side_effect = AsyncMock()
assert await async_setup_component(hass, "netatmo", {})
await hass.async_block_till_done()
assert await get_diagnostics_for_config_entry(
hass, hass_client, config_entry
) == snapshot(exclude=paths("info.data.token.expires_at", "info.entry_id"))