예제 #1
0
async def test_ws_create(hass, hass_ws_client, storage_setup):
    """Test create WS."""
    assert await storage_setup(items=[])

    timer_id = "new_timer"
    timer_entity_id = f"{DOMAIN}.{timer_id}"
    ent_reg = er.async_get(hass)

    state = hass.states.get(timer_entity_id)
    assert state is None
    assert ent_reg.async_get_entity_id(DOMAIN, DOMAIN, timer_id) is None

    client = await hass_ws_client(hass)

    await client.send_json({
        "id": 6,
        "type": f"{DOMAIN}/create",
        CONF_NAME: "New Timer",
        CONF_DURATION: 42,
    })
    resp = await client.receive_json()
    assert resp["success"]

    state = hass.states.get(timer_entity_id)
    assert state.state == STATUS_IDLE
    assert state.attributes[ATTR_DURATION] == _format_timedelta(
        cv.time_period(42))
    assert ent_reg.async_get_entity_id(DOMAIN, DOMAIN,
                                       timer_id) == timer_entity_id
예제 #2
0
async def test_update(hass, hass_ws_client, storage_setup):
    """Test updating timer entity."""

    assert await storage_setup()

    timer_id = "from_storage"
    timer_entity_id = f"{DOMAIN}.{DOMAIN}_{timer_id}"
    ent_reg = er.async_get(hass)

    state = hass.states.get(timer_entity_id)
    assert state.attributes[ATTR_FRIENDLY_NAME] == "timer from storage"
    assert ent_reg.async_get_entity_id(DOMAIN, DOMAIN,
                                       timer_id) == timer_entity_id

    client = await hass_ws_client(hass)

    await client.send_json({
        "id": 6,
        "type": f"{DOMAIN}/update",
        f"{DOMAIN}_id": f"{timer_id}",
        CONF_DURATION: 33,
    })
    resp = await client.receive_json()
    assert resp["success"]

    state = hass.states.get(timer_entity_id)
    assert state.attributes[ATTR_DURATION] == _format_timedelta(
        cv.time_period(33))