async def test_ssdp_not_wilight_abort_3( hass: HomeAssistant, dummy_get_components_from_model_clear) -> None: """Test that the ssdp aborts not_wilight.""" discovery_info = MOCK_SSDP_DISCOVERY_INFO_P_B.copy() result = await hass.config_entries.flow.async_init( DOMAIN, context={CONF_SOURCE: SOURCE_SSDP}, data=discovery_info) assert result["type"] == RESULT_TYPE_ABORT assert result["reason"] == "not_wilight_device"
async def test_ssdp_not_supported_abort( opp: OpenPeerPower, dummy_get_components_from_model_wrong) -> None: """Test that the ssdp aborts not_supported.""" discovery_info = MOCK_SSDP_DISCOVERY_INFO_P_B.copy() result = await opp.config_entries.flow.async_init( DOMAIN, context={CONF_SOURCE: SOURCE_SSDP}, data=discovery_info) assert result["type"] == RESULT_TYPE_ABORT assert result["reason"] == "not_supported_device"
async def test_show_ssdp_form(hass: HomeAssistantType) -> None: """Test that the ssdp confirmation form is served.""" discovery_info = MOCK_SSDP_DISCOVERY_INFO_P_B.copy() result = await hass.config_entries.flow.async_init( DOMAIN, context={CONF_SOURCE: SOURCE_SSDP}, data=discovery_info) assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "confirm" assert result["description_placeholders"] == { CONF_NAME: f"WL{WILIGHT_ID}", CONF_COMPONENTS: "light", }
async def test_ssdp_device_exists_abort(hass: HomeAssistantType) -> None: """Test abort SSDP flow if WiLight already configured.""" entry = MockConfigEntry( domain=DOMAIN, unique_id=WILIGHT_ID, data={ CONF_HOST: HOST, CONF_SERIAL_NUMBER: UPNP_SERIAL, CONF_MODEL_NAME: UPNP_MODEL_NAME_P_B, }, ) entry.add_to_hass(hass) discovery_info = MOCK_SSDP_DISCOVERY_INFO_P_B.copy() result = await hass.config_entries.flow.async_init( DOMAIN, context={CONF_SOURCE: SOURCE_SSDP}, data=discovery_info, ) assert result["type"] == RESULT_TYPE_ABORT assert result["reason"] == "already_configured"
async def test_full_ssdp_flow_implementation(hass: HomeAssistantType) -> None: """Test the full SSDP flow from start to finish.""" discovery_info = MOCK_SSDP_DISCOVERY_INFO_P_B.copy() result = await hass.config_entries.flow.async_init( DOMAIN, context={CONF_SOURCE: SOURCE_SSDP}, data=discovery_info) assert result["type"] == RESULT_TYPE_FORM assert result["step_id"] == "confirm" assert result["description_placeholders"] == { CONF_NAME: f"WL{WILIGHT_ID}", "components": "light", } result = await hass.config_entries.flow.async_configure(result["flow_id"], user_input={}) assert result["type"] == RESULT_TYPE_CREATE_ENTRY assert result["title"] == f"WL{WILIGHT_ID}" assert result["data"] assert result["data"][CONF_HOST] == HOST assert result["data"][CONF_SERIAL_NUMBER] == UPNP_SERIAL assert result["data"][CONF_MODEL_NAME] == UPNP_MODEL_NAME_P_B