diff --git a/homeassistant/util/aiohttp.py b/homeassistant/util/aiohttp.py index aad9771d963..5b6774a08a5 100644 --- a/homeassistant/util/aiohttp.py +++ b/homeassistant/util/aiohttp.py @@ -28,6 +28,14 @@ class MockStreamReader: return self._content.read(byte_count) +class MockStreamReaderChunked(MockStreamReader): + """Mock a stream reader with simulated chunked data.""" + + async def readchunk(self) -> tuple[bytes, bool]: + """Read bytes.""" + return (self._content.read(), False) + + class MockPayloadWriter: """Small mock to imitate payload writer.""" diff --git a/tests/components/cloud/test_backup.py b/tests/components/cloud/test_backup.py index 8399e69ab09..e75cf72332c 100644 --- a/tests/components/cloud/test_backup.py +++ b/tests/components/cloud/test_backup.py @@ -24,20 +24,12 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.backup import async_initialize_backup from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.setup import async_setup_component -from homeassistant.util.aiohttp import MockStreamReader +from homeassistant.util.aiohttp import MockStreamReaderChunked from tests.test_util.aiohttp import AiohttpClientMocker from tests.typing import ClientSessionGenerator, MagicMock, WebSocketGenerator -class MockStreamReaderChunked(MockStreamReader): - """Mock a stream reader with simulated chunked data.""" - - async def readchunk(self) -> tuple[bytes, bool]: - """Read bytes.""" - return (self._content.read(), False) - - @pytest.fixture(autouse=True) async def setup_integration( hass: HomeAssistant, diff --git a/tests/components/immich/__init__.py b/tests/components/immich/__init__.py index 3a48c2cd725..604ab84d68d 100644 --- a/tests/components/immich/__init__.py +++ b/tests/components/immich/__init__.py @@ -1,19 +1,10 @@ """Tests for the Immich integration.""" from homeassistant.core import HomeAssistant -from homeassistant.util.aiohttp import MockStreamReader from tests.common import MockConfigEntry -class MockStreamReaderChunked(MockStreamReader): - """Mock a stream reader with simulated chunked data.""" - - async def readchunk(self) -> tuple[bytes, bool]: - """Read bytes.""" - return (self._content.read(), False) - - async def setup_integration(hass: HomeAssistant, config_entry: MockConfigEntry) -> None: """Fixture for setting up the component.""" config_entry.add_to_hass(hass) diff --git a/tests/components/immich/conftest.py b/tests/components/immich/conftest.py index 5a957870f07..1b9a7df8df7 100644 --- a/tests/components/immich/conftest.py +++ b/tests/components/immich/conftest.py @@ -23,8 +23,8 @@ from homeassistant.const import ( ) from homeassistant.core import HomeAssistant from homeassistant.setup import async_setup_component +from homeassistant.util.aiohttp import MockStreamReaderChunked -from . import MockStreamReaderChunked from .const import MOCK_ALBUM_WITH_ASSETS, MOCK_ALBUM_WITHOUT_ASSETS from tests.common import MockConfigEntry diff --git a/tests/components/immich/test_media_source.py b/tests/components/immich/test_media_source.py index ae7201f5e70..c8da8d94eeb 100644 --- a/tests/components/immich/test_media_source.py +++ b/tests/components/immich/test_media_source.py @@ -23,9 +23,9 @@ from homeassistant.components.media_source import ( ) from homeassistant.core import HomeAssistant from homeassistant.setup import async_setup_component -from homeassistant.util.aiohttp import MockRequest +from homeassistant.util.aiohttp import MockRequest, MockStreamReaderChunked -from . import MockStreamReaderChunked, setup_integration +from . import setup_integration from .const import MOCK_ALBUM_WITHOUT_ASSETS from tests.common import MockConfigEntry diff --git a/tests/components/synology_dsm/test_backup.py b/tests/components/synology_dsm/test_backup.py index db0062b45bf..5d54377c202 100644 --- a/tests/components/synology_dsm/test_backup.py +++ b/tests/components/synology_dsm/test_backup.py @@ -34,7 +34,7 @@ from homeassistant.const import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.backup import async_initialize_backup from homeassistant.setup import async_setup_component -from homeassistant.util.aiohttp import MockStreamReader +from homeassistant.util.aiohttp import MockStreamReader, MockStreamReaderChunked from .common import mock_dsm_information from .consts import HOST, MACS, PASSWORD, PORT, USE_SSL, USERNAME @@ -45,14 +45,6 @@ from tests.typing import ClientSessionGenerator, WebSocketGenerator BASE_FILENAME = "Automatic_backup_2025.2.0.dev0_2025-01-09_20.14_35457323" -class MockStreamReaderChunked(MockStreamReader): - """Mock a stream reader with simulated chunked data.""" - - async def readchunk(self) -> tuple[bytes, bool]: - """Read bytes.""" - return (self._content.read(), False) - - async def _mock_download_file(path: str, filename: str) -> MockStreamReader: if filename == f"{BASE_FILENAME}_meta.json": return MockStreamReader(