async def test_form_ssdp_gets_form_with_ignored_entry(hass):
    'Test we can still setup if there is an ignored entry.'
    (await setup.async_setup_component(hass, 'persistent_notification', {}))
    entry = MockConfigEntry(domain=UNIFI_DOMAIN, data={'not_controller_key': None}, source=config_entries.SOURCE_IGNORE)
    entry.add_to_hass(hass)
    result = (await hass.config_entries.flow.async_init(UNIFI_DOMAIN, context={'source': config_entries.SOURCE_SSDP}, data={'friendlyName': 'UniFi Dream Machine New', 'modelDescription': 'UniFi Dream Machine Pro', 'ssdp_location': 'http://1.2.3.4:41417/rootDesc.xml', 'serialNumber': 'e0:63:da:20:14:a9'}))
    assert (result['type'] == 'form')
    assert (result['step_id'] == 'user')
    assert (result['errors'] == {})
    context = next((flow['context'] for flow in hass.config_entries.flow.async_progress() if (flow['flow_id'] == result['flow_id'])))
    assert (context['title_placeholders'] == {'host': '1.2.3.4', 'site': 'default'})
Test we can still setup if there is an ignored entry.
async def test_form_ssdp_gets_form_with_ignored_entry(hass):
    
    (await setup.async_setup_component(hass, 'persistent_notification', {}))
    entry = MockConfigEntry(domain=UNIFI_DOMAIN, data={'not_controller_key': None}, source=config_entries.SOURCE_IGNORE)
    entry.add_to_hass(hass)
    result = (await hass.config_entries.flow.async_init(UNIFI_DOMAIN, context={'source': config_entries.SOURCE_SSDP}, data={'friendlyName': 'UniFi Dream Machine New', 'modelDescription': 'UniFi Dream Machine Pro', 'ssdp_location': 'http://1.2.3.4:41417/rootDesc.xml', 'serialNumber': 'e0:63:da:20:14:a9'}))
    assert (result['type'] == 'form')
    assert (result['step_id'] == 'user')
    assert (result['errors'] == {})
    context = next((flow['context'] for flow in hass.config_entries.flow.async_progress() if (flow['flow_id'] == result['flow_id'])))
    assert (context['title_placeholders'] == {'host': '1.2.3.4', 'site': 'default'})