core/tests/components/prosegur/conftest.py

62 lines
1.8 KiB
Python
Raw Normal View History

"""Define test fixtures for Prosegur."""
from unittest.mock import AsyncMock, MagicMock, patch
from pyprosegur.installation import Camera
import pytest
from homeassistant.components.prosegur import DOMAIN as PROSEGUR_DOMAIN
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
CONTRACT = "1234abcd"
@pytest.fixture
def mock_config_entry() -> MockConfigEntry:
"""Return the default mocked config entry."""
return MockConfigEntry(
domain=PROSEGUR_DOMAIN,
data={
"contract": CONTRACT,
CONF_USERNAME: "user@email.com",
CONF_PASSWORD: "password",
"country": "PT",
},
)
@pytest.fixture
def mock_install() -> AsyncMock:
"""Return the mocked alarm install."""
install = MagicMock()
install.contract = CONTRACT
install.cameras = [Camera("1", "test_cam")]
install.arm = AsyncMock()
install.disarm = AsyncMock()
install.arm_partially = AsyncMock()
install.get_image = AsyncMock(return_value=b"ABC")
install.request_image = AsyncMock()
install.data = {"contract": CONTRACT}
install.activity = AsyncMock(return_value={"event": "armed"})
return install
@pytest.fixture
async def init_integration(
hass: HomeAssistant, mock_config_entry: MockConfigEntry, mock_install: AsyncMock
) -> MockConfigEntry:
"""Set up the Prosegur integration for testing."""
mock_config_entry.add_to_hass(hass)
with patch(
"pyprosegur.installation.Installation.retrieve", return_value=mock_install
), patch("pyprosegur.auth.Auth.login"):
await hass.config_entries.async_setup(mock_config_entry.entry_id)
await hass.async_block_till_done()
return mock_config_entry