core/tests/components/ezviz/conftest.py

101 lines
2.7 KiB
Python

"""Define pytest.fixtures available for all tests."""
from collections.abc import Generator
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from homeassistant.components.ezviz import (
ATTR_TYPE_CAMERA,
ATTR_TYPE_CLOUD,
CONF_RFSESSION_ID,
CONF_SESSION_ID,
DOMAIN,
)
from homeassistant.const import CONF_PASSWORD, CONF_TYPE, CONF_URL, CONF_USERNAME
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
@pytest.fixture
def mock_setup_entry() -> Generator[AsyncMock]:
"""Mock setting up a config entry."""
with patch(
"homeassistant.components.ezviz.async_setup_entry", return_value=True
) as setup_entry_mock:
yield setup_entry_mock
@pytest.fixture(autouse=True)
def mock_ffmpeg(hass: HomeAssistant) -> None:
"""Mock ffmpeg is loaded."""
hass.config.components.add("ffmpeg")
@pytest.fixture
def mock_config_entry() -> MockConfigEntry:
"""Return the default mocked config entry."""
return MockConfigEntry(
domain=DOMAIN,
unique_id="test-username",
title="test-username",
data={
CONF_SESSION_ID: "test-username",
CONF_RFSESSION_ID: "test-password",
CONF_URL: "apiieu.ezvizlife.com",
CONF_TYPE: ATTR_TYPE_CLOUD,
},
)
@pytest.fixture
def mock_camera_config_entry() -> MockConfigEntry:
"""Return the default mocked config entry."""
return MockConfigEntry(
domain=DOMAIN,
unique_id="C666666",
title="Camera 1",
data={
CONF_TYPE: ATTR_TYPE_CAMERA,
CONF_USERNAME: "test-username",
CONF_PASSWORD: "test-password",
},
)
@pytest.fixture
def mock_ezviz_client() -> Generator[AsyncMock]:
"""Mock the EzvizAPI for easier testing."""
with (
patch(
"homeassistant.components.ezviz.EzvizClient", autospec=True
) as mock_ezviz,
patch("homeassistant.components.ezviz.config_flow.EzvizClient", new=mock_ezviz),
):
instance = mock_ezviz.return_value
instance.login.return_value = {
"session_id": "fake_token",
"rf_session_id": "fake_rf_token",
"api_url": "apiieu.ezvizlife.com",
}
instance.get_detection_sensibility.return_value = True
yield instance
@pytest.fixture
def mock_test_rtsp_auth() -> Generator[MagicMock]:
"""Mock the EzvizApi for easier testing."""
with (
patch(
"homeassistant.components.ezviz.config_flow.TestRTSPAuth"
) as mock_ezviz_test_rtsp,
):
instance = mock_ezviz_test_rtsp.return_value
instance.main.return_value = True
yield instance