mirror of https://github.com/home-assistant/core
78 lines
2.0 KiB
Python
78 lines
2.0 KiB
Python
"""Test UptimeRobot diagnostics."""
|
|
|
|
import json
|
|
from unittest.mock import patch
|
|
|
|
from pyuptimerobot import UptimeRobotException
|
|
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from .common import (
|
|
MOCK_UPTIMEROBOT_ACCOUNT,
|
|
MOCK_UPTIMEROBOT_API_KEY,
|
|
MOCK_UPTIMEROBOT_EMAIL,
|
|
MockApiResponseKey,
|
|
mock_uptimerobot_api_response,
|
|
setup_uptimerobot_integration,
|
|
)
|
|
|
|
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,
|
|
) -> None:
|
|
"""Test config entry diagnostics."""
|
|
entry = await setup_uptimerobot_integration(hass)
|
|
|
|
with patch(
|
|
"pyuptimerobot.UptimeRobot.async_get_account_details",
|
|
return_value=mock_uptimerobot_api_response(
|
|
key=MockApiResponseKey.ACCOUNT,
|
|
data=MOCK_UPTIMEROBOT_ACCOUNT,
|
|
),
|
|
):
|
|
result = await get_diagnostics_for_config_entry(
|
|
hass,
|
|
hass_client,
|
|
entry,
|
|
)
|
|
|
|
assert result["account"] == {
|
|
"down_monitors": 0,
|
|
"paused_monitors": 0,
|
|
"up_monitors": 1,
|
|
}
|
|
|
|
assert result["monitors"] == [
|
|
{"id": 1234, "interval": 0, "status": 2, "type": "MonitorType.HTTP"}
|
|
]
|
|
|
|
assert list(result.keys()) == ["account", "monitors"]
|
|
|
|
result_dump = json.dumps(result)
|
|
assert MOCK_UPTIMEROBOT_EMAIL not in result_dump
|
|
assert MOCK_UPTIMEROBOT_API_KEY not in result_dump
|
|
|
|
|
|
async def test_entry_diagnostics_exception(
|
|
hass: HomeAssistant,
|
|
hass_client: ClientSessionGenerator,
|
|
) -> None:
|
|
"""Test config entry diagnostics with exception."""
|
|
entry = await setup_uptimerobot_integration(hass)
|
|
|
|
with patch(
|
|
"pyuptimerobot.UptimeRobot.async_get_account_details",
|
|
side_effect=UptimeRobotException("Test exception"),
|
|
):
|
|
result = await get_diagnostics_for_config_entry(
|
|
hass,
|
|
hass_client,
|
|
entry,
|
|
)
|
|
|
|
assert result["account"] == "Test exception"
|