async def sut(monkeypatch, hass_mock, mocker): c = MediaPlayerController() c.args = {} c.delay = 0 c.media_player = "test" c.on_hold = False mocker.patch.object(ReleaseHoldController, "initialize") c.args["media_player"] = "media_player.test" monkeypatch.setattr(c, "get_entity_state", fake_async_function("0")) await c.initialize() return c
async def test_hold_loop( sut: MediaPlayerController, mocker: MockerFixture, direction_input: Literal["up", "down"], volume_set_support, volume_level, expected_volume_level, ): called_service_patch = mocker.patch.object(sut, "call_service") sut.feature_support._supported_features = (MediaPlayerSupport.VOLUME_SET if volume_set_support else 0) sut.volume_level = volume_level await sut.hold_loop(direction_input) if volume_set_support: called_service_patch.assert_called_once_with( "media_player/volume_set", entity_id=ENTITY_NAME, volume_level=expected_volume_level, ) else: called_service_patch.assert_called_once_with( f"media_player/volume_{direction_input}", entity_id=ENTITY_NAME)
async def sut(mocker: MockerFixture) -> MediaPlayerController: controller = MediaPlayerController() # type: ignore mocker.patch.object(Controller, "initialize") controller.args = {"media_player": ENTITY_NAME} await controller.initialize() return controller