Skip to content

Commit 24eff13

Browse files
authored
Merge pull request #130 from allenporter/dev
Revert removal of media pause
2 parents 584f73e + cd41dd5 commit 24eff13

2 files changed

Lines changed: 38 additions & 0 deletions

File tree

custom_components/synthetic_home/media_player.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,11 @@ async def async_media_play(self) -> None:
144144
self._attr_state = MediaPlayerState.PLAYING
145145
self.async_write_ha_state()
146146

147+
async def async_media_pause(self) -> None:
148+
"""Stop the media from playing."""
149+
self._attr_state = MediaPlayerState.PAUSED
150+
self.async_write_ha_state()
151+
147152
async def async_media_stop(self) -> None:
148153
"""Stop the media from playing."""
149154
self._attr_state = MediaPlayerState.IDLE

tests/test_media_player.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
SERVICE_TURN_ON,
1111
SERVICE_TURN_OFF,
1212
SERVICE_VOLUME_SET,
13+
SERVICE_MEDIA_PAUSE,
1314
SERVICE_MEDIA_NEXT_TRACK,
1415
SERVICE_MEDIA_PREVIOUS_TRACK,
1516
ATTR_MEDIA_VOLUME_LEVEL,
@@ -227,3 +228,35 @@ async def test_smart_speaker_play_media(
227228
"supported_features": 22461,
228229
"media_track": 0,
229230
}
231+
232+
233+
@pytest.mark.parametrize(
234+
("config_yaml_fixture", "test_entity"),
235+
[(f"{FIXTURES}/smart-speaker-example.yaml", "media_player.smart_speaker")],
236+
)
237+
async def test_pause_media_player(
238+
hass: HomeAssistant, setup_integration: None, test_entity: str
239+
) -> None:
240+
"""Test smart speaker as a media player."""
241+
242+
state = hass.states.get(test_entity)
243+
assert state
244+
assert state.state == "playing"
245+
assert state.attributes == {
246+
"friendly_name": "Smart Speaker",
247+
"device_class": "speaker",
248+
"volume_level": 0.5,
249+
"supported_features": 22461,
250+
"media_track": 0,
251+
}
252+
253+
await hass.services.async_call(
254+
MEDIA_PLAYER_DOMAIN,
255+
SERVICE_MEDIA_PAUSE,
256+
service_data={ATTR_ENTITY_ID: test_entity},
257+
blocking=True,
258+
)
259+
await hass.async_block_till_done()
260+
state = hass.states.get(test_entity)
261+
assert state
262+
assert state.state == "paused"

0 commit comments

Comments
 (0)