Files
core/tests/components/github/test_diagnostics.py
2026-01-21 22:09:56 +01:00

57 lines
1.6 KiB
Python

"""Test GitHub diagnostics."""
from unittest.mock import AsyncMock
from aiogithubapi import GitHubException
from homeassistant.core import HomeAssistant
from . import setup_integration
from tests.common import MockConfigEntry
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,
mock_config_entry: MockConfigEntry,
github_client: AsyncMock,
) -> None:
"""Test config entry diagnostics."""
await setup_integration(hass, mock_config_entry)
result = await get_diagnostics_for_config_entry(
hass,
hass_client,
mock_config_entry,
)
assert result["options"]["repositories"] == ["octocat/Hello-World"]
assert result["rate_limit"] == {
"resources": {"core": {"remaining": 100, "limit": 100}}
}
assert (
result["repositories"]["octocat/Hello-World"]["full_name"]
== "octocat/Hello-World"
)
async def test_entry_diagnostics_exception(
hass: HomeAssistant,
hass_client: ClientSessionGenerator,
mock_config_entry: MockConfigEntry,
github_client: AsyncMock,
) -> None:
"""Test config entry diagnostics with exception for ratelimit."""
await setup_integration(hass, mock_config_entry)
github_client.rate_limit.side_effect = GitHubException("error")
result = await get_diagnostics_for_config_entry(
hass,
hass_client,
mock_config_entry,
)
assert result["rate_limit"]["error"] == "error"