Exemple #1
0
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