Josef Zweck dc92e912c2
Add azure_storage as backup agent (#134085)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-24 20:59:51 +01:00

64 lines
1.7 KiB
Python

"""Fixtures for Azure Storage tests."""
from collections.abc import AsyncIterator, Generator
from unittest.mock import AsyncMock, MagicMock, patch
from azure.storage.blob import BlobProperties
import pytest
from homeassistant.components.azure_storage.const import DOMAIN
from .const import BACKUP_METADATA, USER_INPUT
from tests.common import MockConfigEntry
@pytest.fixture
def mock_setup_entry() -> Generator[AsyncMock]:
"""Mock setting up a config entry."""
with patch(
"homeassistant.components.azure_storage.async_setup_entry", return_value=True
) as mock_setup:
yield mock_setup
@pytest.fixture(autouse=True)
def mock_client() -> Generator[MagicMock]:
"""Mock the Azure Storage client."""
with (
patch(
"homeassistant.components.azure_storage.config_flow.ContainerClient",
autospec=True,
) as container_client,
patch(
"homeassistant.components.azure_storage.ContainerClient",
new=container_client,
),
):
client = container_client.return_value
client.exists.return_value = False
async def async_list_blobs():
yield BlobProperties(metadata=BACKUP_METADATA)
yield BlobProperties(metadata=BACKUP_METADATA)
client.list_blobs.return_value = async_list_blobs()
class MockStream:
async def chunks(self) -> AsyncIterator[bytes]:
yield b"backup data"
client.download_blob.return_value = MockStream()
yield client
@pytest.fixture
def mock_config_entry() -> MockConfigEntry:
"""Return the default mocked config entry."""
return MockConfigEntry(
title="account/container1",
domain=DOMAIN,
data=USER_INPUT,
)