hass-core/tests/components/github/common.py

41 lines
1.4 KiB
Python
Raw Normal View History

"""Common helpers for GitHub integration tests."""
from __future__ import annotations
from homeassistant import config_entries
from homeassistant.components.github.const import CONF_REPOSITORIES
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
from tests.test_util.aiohttp import AiohttpClientMocker
MOCK_ACCESS_TOKEN = "gho_16C7e42F292c6912E7710c838347Ae178B4a"
async def setup_github_integration(
hass: HomeAssistant,
mock_config_entry: MockConfigEntry,
aioclient_mock: AiohttpClientMocker,
) -> None:
"""Mock setting up the integration."""
repository_id = 1
for repository in mock_config_entry.options[CONF_REPOSITORIES]:
aioclient_mock.get(
f"https://api.github.com/repos/{repository}",
json={"full_name": repository, "id": repository_id},
headers={"Content-Type": "application/json"},
)
repository_id += 1
for endpoint in ("issues", "pulls", "releases", "commits"):
aioclient_mock.get(
f"https://api.github.com/repos/{repository}/{endpoint}",
json=[],
headers={"Content-Type": "application/json"},
)
mock_config_entry.add_to_hass(hass)
setup_result = await hass.config_entries.async_setup(mock_config_entry.entry_id)
await hass.async_block_till_done()
assert setup_result
assert mock_config_entry.state == config_entries.ConfigEntryState.LOADED