1
0
mirror of https://github.com/home-assistant/core.git synced 2026-02-21 02:18:47 +00:00
Files
core/tests/components/html5/conftest.py

114 lines
3.1 KiB
Python

"""Common fixtures for html5 integration."""
from collections.abc import Generator
from unittest.mock import AsyncMock, MagicMock
from aiohttp import ClientResponse
import pytest
from homeassistant.components.html5.const import (
ATTR_VAPID_EMAIL,
ATTR_VAPID_PRV_KEY,
ATTR_VAPID_PUB_KEY,
DOMAIN,
)
from homeassistant.const import CONF_NAME
from tests.common import MockConfigEntry, patch
MOCK_CONF = {
ATTR_VAPID_EMAIL: "test@example.com",
ATTR_VAPID_PRV_KEY: "h6acSRds8_KR8hT9djD8WucTL06Gfe29XXyZ1KcUjN8",
}
MOCK_CONF_PUB_KEY = "BIUtPN7Rq_8U7RBEqClZrfZ5dR9zPCfvxYPtLpWtRVZTJEc7lzv2dhzDU6Aw1m29Ao0-UA1Uq6XO9Df8KALBKqA"
@pytest.fixture(name="config_entry")
def mock_config_entry() -> MockConfigEntry:
"""Mock ntfy configuration entry."""
return MockConfigEntry(
domain=DOMAIN,
title="HTML5",
data={
ATTR_VAPID_PRV_KEY: MOCK_CONF[ATTR_VAPID_PRV_KEY],
ATTR_VAPID_PUB_KEY: MOCK_CONF_PUB_KEY,
ATTR_VAPID_EMAIL: MOCK_CONF[ATTR_VAPID_EMAIL],
CONF_NAME: DOMAIN,
},
entry_id="ABCDEFGHIJKLMNOPQRSTUVWXYZ",
)
@pytest.fixture(name="load_config")
def mock_load_config() -> Generator[MagicMock]:
"""Mock load config."""
with patch(
"homeassistant.components.html5.notify._load_config", return_value={}
) as mock_load_config:
yield mock_load_config
@pytest.fixture
def mock_wp() -> Generator[AsyncMock]:
"""Mock WebPusher."""
with patch(
"homeassistant.components.html5.notify.WebPusher", autospec=True
) as mock_client:
client = mock_client.return_value
client.cls = mock_client
client.send_async.return_value = AsyncMock(spec=ClientResponse, status=201)
yield client
@pytest.fixture(name="webpush_async")
def mock_webpush_async() -> Generator[AsyncMock]:
"""Mock webpush_async."""
with patch(
"homeassistant.components.html5.notify.webpush_async", autospec=True
) as mock_client:
mock_client.return_value = AsyncMock(spec=ClientResponse, status=201)
yield mock_client
@pytest.fixture
def mock_jwt() -> Generator[MagicMock]:
"""Mock JWT."""
with (
patch("homeassistant.components.html5.notify.jwt") as mock_client,
):
mock_client.encode.return_value = "JWT"
mock_client.decode.return_value = {"target": "device"}
yield mock_client
@pytest.fixture
def mock_uuid() -> Generator[MagicMock]:
"""Mock UUID."""
with (
patch("homeassistant.components.html5.notify.uuid") as mock_client,
):
mock_client.uuid4.return_value = "12345678-1234-5678-1234-567812345678"
yield mock_client
@pytest.fixture
def mock_vapid() -> Generator[MagicMock]:
"""Mock VAPID headers."""
with (
patch(
"homeassistant.components.html5.notify.Vapid", autospec=True
) as mock_client,
):
mock_client.from_string.return_value.sign.return_value = {
"Authorization": "vapid t=signed!!!",
"urgency": "normal",
"priority": "normal",
}
yield mock_client