1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-20 19:09:45 +00:00
Files
core/tests/components/hikvision/conftest.py
2025-12-18 17:17:27 +01:00

95 lines
2.5 KiB
Python

"""Common fixtures for the Hikvision tests."""
from collections.abc import Generator
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from homeassistant.components.hikvision.const import DOMAIN
from homeassistant.const import (
CONF_HOST,
CONF_PASSWORD,
CONF_PORT,
CONF_SSL,
CONF_USERNAME,
)
from homeassistant.core import HomeAssistant
from . import setup_integration
from tests.common import MockConfigEntry
TEST_HOST = "192.168.1.100"
TEST_PORT = 80
TEST_USERNAME = "admin"
TEST_PASSWORD = "password123"
TEST_DEVICE_ID = "DS-2CD2142FWD-I20170101AAAA"
TEST_DEVICE_NAME = "Front Camera"
@pytest.fixture
def mock_setup_entry() -> Generator[AsyncMock]:
"""Override async_setup_entry."""
with patch(
"homeassistant.components.hikvision.async_setup_entry", return_value=True
) as mock_setup_entry:
yield mock_setup_entry
@pytest.fixture
def mock_config_entry() -> MockConfigEntry:
"""Return the default mocked config entry."""
return MockConfigEntry(
title=TEST_DEVICE_NAME,
domain=DOMAIN,
version=1,
minor_version=1,
data={
CONF_HOST: TEST_HOST,
CONF_PORT: TEST_PORT,
CONF_USERNAME: TEST_USERNAME,
CONF_PASSWORD: TEST_PASSWORD,
CONF_SSL: False,
},
unique_id=TEST_DEVICE_ID,
)
@pytest.fixture
def mock_hikcamera() -> Generator[MagicMock]:
"""Return a mocked HikCamera."""
with (
patch(
"homeassistant.components.hikvision.HikCamera",
autospec=True,
) as hikcamera_mock,
patch(
"homeassistant.components.hikvision.config_flow.HikCamera",
new=hikcamera_mock,
),
):
camera = hikcamera_mock.return_value
camera.get_id = TEST_DEVICE_ID
camera.get_name = TEST_DEVICE_NAME
camera.get_type = "Camera"
camera.current_event_states = {
"Motion": [(True, 1)],
"Line Crossing": [(False, 1)],
}
camera.fetch_attributes.return_value = (
False,
None,
None,
"2024-01-01T00:00:00Z",
)
yield hikcamera_mock
@pytest.fixture
async def init_integration(
hass: HomeAssistant, mock_config_entry: MockConfigEntry, mock_hikcamera: MagicMock
) -> MockConfigEntry:
"""Set up the Hikvision integration for testing."""
await setup_integration(hass, mock_config_entry)
return mock_config_entry