Ejemplo n.º 1
0
async def test_create_entry(hass):
    """Test that the user step works."""
    with patch(
        "homeassistant.components.gios.Gios._get_stations", return_value=STATIONS
    ), patch(
        "homeassistant.components.gios.Gios._get_station",
        return_value=json.loads(load_fixture("gios/station.json")),
    ), patch(
        "homeassistant.components.gios.Gios._get_all_sensors",
        return_value=json.loads(load_fixture("gios/sensors.json")),
    ), patch(
        "homeassistant.components.gios.Gios._get_indexes",
        return_value=json.loads(load_fixture("gios/indexes.json")),
    ):
        flow = config_flow.GiosFlowHandler()
        flow.hass = hass
        flow.context = {}

        result = await flow.async_step_user(user_input=CONFIG)

        assert result["type"] == data_entry_flow.FlowResultType.CREATE_ENTRY
        assert result["title"] == "Test Name 1"
        assert result["data"][CONF_STATION_ID] == CONFIG[CONF_STATION_ID]

        assert flow.context["unique_id"] == "123"
Ejemplo n.º 2
0
async def test_show_form(hass):
    """Test that the form is served with no input."""
    flow = config_flow.GiosFlowHandler()
    flow.hass = hass

    result = await flow.async_step_user(user_input=None)

    assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
    assert result["step_id"] == "user"
Ejemplo n.º 3
0
async def test_cannot_connect(hass):
    """Test that errors are shown when cannot connect to GIOS server."""
    with patch("gios.Gios._async_get", side_effect=ApiError("error")):
        flow = config_flow.GiosFlowHandler()
        flow.hass = hass
        flow.context = {}

        result = await flow.async_step_user(user_input=CONFIG)

        assert result["errors"] == {"base": "cannot_connect"}
Ejemplo n.º 4
0
async def test_invalid_station_id(hass):
    """Test that errors are shown when measuring station ID is invalid."""
    with patch("gios.Gios._get_stations", return_value=VALID_STATIONS):
        flow = config_flow.GiosFlowHandler()
        flow.hass = hass
        flow.context = {}

        result = await flow.async_step_user(user_input={
            CONF_NAME: "Foo",
            CONF_STATION_ID: 0
        })

        assert result["errors"] == {CONF_STATION_ID: "wrong_station_id"}
Ejemplo n.º 5
0
async def test_invalid_sensor_data(hass):
    """Test that errors are shown when sensor data is invalid."""
    with patch("gios.Gios._get_stations", return_value=VALID_STATIONS), patch(
            "gios.Gios._get_station", return_value=VALID_STATION), patch(
                "gios.Gios._get_station",
                return_value=VALID_STATION), patch("gios.Gios._get_sensor",
                                                   return_value={}):
        flow = config_flow.GiosFlowHandler()
        flow.hass = hass
        flow.context = {}

        result = await flow.async_step_user(user_input=CONFIG)

        assert result["errors"] == {CONF_STATION_ID: "invalid_sensors_data"}
Ejemplo n.º 6
0
async def test_invalid_sensor_data(hass):
    """Test that errors are shown when sensor data is invalid."""
    with patch("homeassistant.components.gios.Gios._get_stations",
               return_value=STATIONS), patch(
                   "homeassistant.components.gios.Gios._get_station",
                   return_value=json.loads(load_fixture("gios/station.json")),
               ), patch("homeassistant.components.gios.Gios._get_sensor",
                        return_value={}):
        flow = config_flow.GiosFlowHandler()
        flow.hass = hass
        flow.context = {}

        result = await flow.async_step_user(user_input=CONFIG)

        assert result["errors"] == {CONF_STATION_ID: "invalid_sensors_data"}
Ejemplo n.º 7
0
async def test_create_entry(hass):
    """Test that the user step works."""
    with patch("gios.Gios._get_stations", return_value=VALID_STATIONS), patch(
            "gios.Gios._get_station", return_value=VALID_STATION), patch(
                "gios.Gios._get_station", return_value=VALID_STATION), patch(
                    "gios.Gios._get_sensor", return_value=VALID_SENSOR), patch(
                        "gios.Gios._get_indexes", return_value=VALID_INDEXES):
        flow = config_flow.GiosFlowHandler()
        flow.hass = hass
        flow.context = {}

        result = await flow.async_step_user(user_input=CONFIG)

        assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
        assert result["title"] == CONFIG[CONF_STATION_ID]
        assert result["data"][CONF_STATION_ID] == CONFIG[CONF_STATION_ID]

        assert flow.context["unique_id"] == CONFIG[CONF_STATION_ID]