예제 #1
0
async def test_no_attribution(hass: HomeAssistant):
    """Test that an empty attribution is handled."""
    entry = MockConfigEntry(
        domain=DOMAIN,
        unique_id="0123456789",
        data={
            CONF_ORIGIN_LATITUDE: float(CAR_ORIGIN_LATITUDE),
            CONF_ORIGIN_LONGITUDE: float(CAR_ORIGIN_LONGITUDE),
            CONF_DESTINATION_LATITUDE: float(CAR_DESTINATION_LATITUDE),
            CONF_DESTINATION_LONGITUDE: float(CAR_DESTINATION_LONGITUDE),
            CONF_API_KEY: API_KEY,
            CONF_MODE: TRAVEL_MODE_TRUCK,
            CONF_NAME: "test",
        },
        options=default_options(hass),
    )
    entry.add_to_hass(hass)
    await hass.config_entries.async_setup(entry.entry_id)
    await hass.async_block_till_done()

    hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
    await hass.async_block_till_done()

    assert hass.states.get("sensor.test").attributes.get(
        ATTR_ATTRIBUTION) is None
예제 #2
0
async def test_circular_ref(hass: HomeAssistant, caplog):
    """Test that a circular ref is handled."""
    hass.states.async_set(
        "test.first",
        "test.second",
    )
    hass.states.async_set("test.second", "test.first")
    entry = MockConfigEntry(
        domain=DOMAIN,
        unique_id="0123456789",
        data={
            CONF_ORIGIN_ENTITY_ID: "test.first",
            CONF_DESTINATION_LATITUDE: float(CAR_DESTINATION_LATITUDE),
            CONF_DESTINATION_LONGITUDE: float(CAR_DESTINATION_LONGITUDE),
            CONF_API_KEY: API_KEY,
            CONF_MODE: TRAVEL_MODE_TRUCK,
            CONF_NAME: "test",
        },
        options=default_options(hass),
    )
    entry.add_to_hass(hass)
    await hass.config_entries.async_setup(entry.entry_id)
    await hass.async_block_till_done()

    hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
    await hass.async_block_till_done()

    assert "No coordinatnes found for test.first" in caplog.text
예제 #3
0
파일: test_sensor.py 프로젝트: jbouwh/core
async def test_route_not_found(hass: HomeAssistant, caplog):
    """Test that route not found error is correctly handled."""
    with patch(
            "herepy.RoutingApi.public_transport_timetable",
            side_effect=NoRouteFoundError,
    ):
        entry = MockConfigEntry(
            domain=DOMAIN,
            unique_id="0123456789",
            data={
                CONF_ORIGIN_LATITUDE: float(CAR_ORIGIN_LATITUDE),
                CONF_ORIGIN_LONGITUDE: float(CAR_ORIGIN_LONGITUDE),
                CONF_DESTINATION_LATITUDE: float(CAR_DESTINATION_LATITUDE),
                CONF_DESTINATION_LONGITUDE: float(CAR_DESTINATION_LONGITUDE),
                CONF_API_KEY: API_KEY,
                CONF_MODE: TRAVEL_MODE_TRUCK,
                CONF_NAME: "test",
            },
            options=default_options(hass),
        )
        entry.add_to_hass(hass)
        await hass.config_entries.async_setup(entry.entry_id)
        await hass.async_block_till_done()
        hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
        await hass.async_block_till_done()

        assert NO_ROUTE_ERROR_MESSAGE in caplog.text
예제 #4
0
파일: test_sensor.py 프로젝트: jbouwh/core
async def test_invalid_origin_entity_state(hass: HomeAssistant, caplog):
    """Test that an invalid state of the origin_entity_id is caught."""
    hass.states.async_set(
        "device_tracker.test",
        "test_state",
    )
    entry = MockConfigEntry(
        domain=DOMAIN,
        unique_id="0123456789",
        data={
            CONF_ORIGIN_ENTITY_ID: "device_tracker.test",
            CONF_DESTINATION_LATITUDE: float(CAR_DESTINATION_LATITUDE),
            CONF_DESTINATION_LONGITUDE: float(CAR_DESTINATION_LONGITUDE),
            CONF_API_KEY: API_KEY,
            CONF_MODE: TRAVEL_MODE_TRUCK,
            CONF_NAME: "test",
        },
        options=default_options(hass),
    )
    entry.add_to_hass(hass)
    await hass.config_entries.async_setup(entry.entry_id)
    await hass.async_block_till_done()

    hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
    await hass.async_block_till_done()

    assert "test_state are not valid coordinates" in caplog.text
예제 #5
0
async def test_entity_ids(hass: HomeAssistant, valid_response: MagicMock):
    """Test that origin/destination supplied by entities works."""
    zone_config = {
        "zone": [
            {
                "name": "Origin",
                "latitude": CAR_ORIGIN_LATITUDE,
                "longitude": CAR_ORIGIN_LONGITUDE,
                "radius": 250,
                "passive": False,
            },
        ]
    }
    assert await async_setup_component(hass, "zone", zone_config)
    hass.states.async_set(
        "device_tracker.test",
        "not_home",
        {
            "latitude": float(CAR_DESTINATION_LATITUDE),
            "longitude": float(CAR_DESTINATION_LONGITUDE),
        },
    )
    entry = MockConfigEntry(
        domain=DOMAIN,
        unique_id="0123456789",
        data={
            CONF_ORIGIN_ENTITY_ID: "zone.origin",
            CONF_DESTINATION_ENTITY_ID: "device_tracker.test",
            CONF_API_KEY: API_KEY,
            CONF_MODE: TRAVEL_MODE_TRUCK,
            CONF_NAME: "test",
        },
        options=default_options(hass),
    )
    entry.add_to_hass(hass)
    await hass.config_entries.async_setup(entry.entry_id)
    await hass.async_block_till_done()

    hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
    await hass.async_block_till_done()

    sensor = hass.states.get("sensor.test")
    assert sensor.attributes.get(ATTR_DISTANCE) == 23.903

    valid_response.assert_called_with(
        [CAR_ORIGIN_LATITUDE, CAR_ORIGIN_LONGITUDE],
        [CAR_DESTINATION_LATITUDE, CAR_DESTINATION_LONGITUDE],
        True,
        [
            RouteMode[ROUTE_MODE_FASTEST],
            RouteMode[TRAVEL_MODE_TRUCK],
            RouteMode[TRAFFIC_MODE_ENABLED],
        ],
        arrival=None,
        departure="now",
    )
예제 #6
0
파일: test_init.py 프로젝트: jcgoette/core
async def test_unload_entry(hass: HomeAssistant) -> None:
    """Test that unloading an entry works."""
    entry = MockConfigEntry(
        domain=DOMAIN,
        unique_id="0123456789",
        data={
            CONF_ORIGIN_LATITUDE: float(CAR_ORIGIN_LATITUDE),
            CONF_ORIGIN_LONGITUDE: float(CAR_ORIGIN_LONGITUDE),
            CONF_DESTINATION_LATITUDE: float(CAR_DESTINATION_LATITUDE),
            CONF_DESTINATION_LONGITUDE: float(CAR_DESTINATION_LONGITUDE),
            CONF_API_KEY: API_KEY,
            CONF_MODE: TRAVEL_MODE_CAR,
            CONF_NAME: "test",
        },
        options=default_options(hass),
    )
    entry.add_to_hass(hass)

    await hass.config_entries.async_setup(entry.entry_id)
    await hass.async_block_till_done()
    assert await hass.config_entries.async_unload(entry.entry_id)
    assert not hass.data[DOMAIN]