diff --git a/pyheos/media.py b/pyheos/media.py index 4562992..51f8d95 100644 --- a/pyheos/media.py +++ b/pyheos/media.py @@ -91,18 +91,6 @@ def _update_from_data(self, data: dict[str, Any]) -> None: self.available = data[c.ATTR_AVAILABLE] == c.VALUE_TRUE self.service_username = data.get(c.ATTR_SERVICE_USER_NAME) - def clone(self) -> "MediaMusicSource": - """Create a new instance from the current instance.""" - return MediaMusicSource( - source_id=self.source_id, - name=self.name, - type=self.type, - image_url=self.image_url, - available=self.available, - service_username=self.service_username, - heos=self.heos, - ) - async def refresh(self) -> None: """Refresh the instance with the latest data.""" assert self.heos, "Heos instance not set" @@ -163,22 +151,6 @@ def from_data( heos=heos, ) - def clone(self) -> "MediaItem": - return MediaItem( - source_id=self.source_id, - name=self.name, - type=self.type, - image_url=self.image_url, - playable=self.playable, - browsable=self.browsable, - container_id=self.container_id, - media_id=self.media_id, - artist=self.artist, - album=self.album, - album_id=self.album_id, - heos=self.heos, - ) - async def browse( self, range_start: int | None = None, diff --git a/tests/conftest.py b/tests/conftest.py index b0e7cb9..16385b4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,6 @@ """Test fixtures for pyheos.""" +import dataclasses from collections.abc import AsyncGenerator, Callable, Coroutine from typing import Any @@ -78,65 +79,47 @@ async def target(*args: Any, **kwargs: Any) -> None: @pytest.fixture def media_music_source(heos: MockHeos) -> MediaMusicSource: - source = MediaMusicSources.FAVORITES.clone() - source.heos = heos - return source + return dataclasses.replace(MediaMusicSources.FAVORITES, heos=heos) @pytest.fixture def media_music_source_unavailable(heos: MockHeos) -> MediaMusicSource: - source = MediaMusicSources.PANDORA.clone() - source.heos = heos - return source + return dataclasses.replace(MediaMusicSources.PANDORA, heos=heos) @pytest.fixture def media_music_source_tidal(heos: MockHeos) -> MediaMusicSource: - source = MediaMusicSources.TIDAL.clone() - source.heos = heos - return source + return dataclasses.replace(MediaMusicSources.TIDAL, heos=heos) @pytest.fixture def media_item_album(heos: MockHeos) -> MediaItem: - source = MediaItems.ALBUM.clone() - source.heos = heos - return source + return dataclasses.replace(MediaItems.ALBUM, heos=heos) @pytest.fixture def media_item_song(heos: MockHeos) -> MediaItem: - source = MediaItems.SONG.clone() - source.heos = heos - return source + return dataclasses.replace(MediaItems.SONG, heos=heos) @pytest.fixture(name="media_item_input") def media_item_input_fixture(heos: MockHeos) -> MediaItem: - source = MediaItems.INPUT.clone() - source.heos = heos - return source + return dataclasses.replace(MediaItems.INPUT, heos=heos) @pytest.fixture def media_item_station(heos: MockHeos) -> MediaItem: - source = MediaItems.STATION.clone() - source.heos = heos - return source + return dataclasses.replace(MediaItems.STATION, heos=heos) @pytest.fixture def media_item_playlist(heos: MockHeos) -> MediaItem: - source = MediaItems.PLAYLIST.clone() - source.heos = heos - return source + return dataclasses.replace(MediaItems.PLAYLIST, heos=heos) @pytest.fixture def media_item_device(heos: MockHeos) -> MediaItem: - source = MediaItems.DEVICE.clone() - source.heos = heos - return source + return dataclasses.replace(MediaItems.DEVICE, heos=heos) @pytest_asyncio.fixture(name="player")