mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Allow current empty feeds to be configured in Feedreader (#121421)
This commit is contained in:
parent
1c2e6ab3db
commit
846528131e
@ -107,13 +107,6 @@ class FeedReaderConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||
return self.abort_on_import_error(user_input[CONF_URL], "url_error")
|
||||
return self.show_user_form(user_input, {"base": "url_error"})
|
||||
|
||||
if not feed.entries:
|
||||
if self.context["source"] == SOURCE_IMPORT:
|
||||
return self.abort_on_import_error(
|
||||
user_input[CONF_URL], "no_feed_entries"
|
||||
)
|
||||
return self.show_user_form(user_input, {"base": "no_feed_entries"})
|
||||
|
||||
feed_title = feed["feed"]["title"]
|
||||
|
||||
return self.async_create_entry(
|
||||
@ -161,13 +154,6 @@ class FeedReaderConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||
step_id="reconfigure_confirm",
|
||||
errors={"base": "url_error"},
|
||||
)
|
||||
if not feed.entries:
|
||||
return self.show_user_form(
|
||||
user_input=user_input,
|
||||
description_placeholders={"name": self._config_entry.title},
|
||||
step_id="reconfigure_confirm",
|
||||
errors={"base": "no_feed_entries"},
|
||||
)
|
||||
|
||||
self.hass.config_entries.async_update_entry(self._config_entry, data=user_input)
|
||||
return self.async_abort(reason="reconfigure_successful")
|
||||
|
@ -18,8 +18,7 @@
|
||||
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]"
|
||||
},
|
||||
"error": {
|
||||
"url_error": "The URL could not be opened.",
|
||||
"no_feed_entries": "The URL seems not to serve any feed entries."
|
||||
"url_error": "The URL could not be opened."
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
@ -38,10 +37,6 @@
|
||||
"import_yaml_error_url_error": {
|
||||
"title": "The Feedreader YAML configuration import failed",
|
||||
"description": "Configuring the Feedreader using YAML is being removed but there was a connection error when trying to import the YAML configuration for `{url}`.\n\nPlease verify that url is reachable and accessable for Home Assistant and restart Home Assistant to try again or remove the Feedreader YAML configuration from your configuration.yaml file and continue to set up the integration manually."
|
||||
},
|
||||
"import_yaml_error_no_feed_entries": {
|
||||
"title": "[%key:component::feedreader::issues::import_yaml_error_url_error::title%]",
|
||||
"description": "Configuring the Feedreader using YAML is being removed but when trying to import the YAML configuration for `{url}` no feed entries were found.\n\nPlease verify that url serves any feed entries and restart Home Assistant to try again or remove the Feedreader YAML configuration from your configuration.yaml file and continue to set up the integration manually."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -83,16 +83,6 @@ async def test_user_errors(
|
||||
assert result["step_id"] == "user"
|
||||
assert result["errors"] == {"base": "url_error"}
|
||||
|
||||
# no feed entries returned
|
||||
feedparser.side_effect = None
|
||||
feedparser.return_value = None
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"], user_input={CONF_URL: URL}
|
||||
)
|
||||
assert result["type"] is FlowResultType.FORM
|
||||
assert result["step_id"] == "user"
|
||||
assert result["errors"] == {"base": "no_feed_entries"}
|
||||
|
||||
# success
|
||||
feedparser.side_effect = None
|
||||
feedparser.return_value = feed_one_event
|
||||
@ -141,40 +131,25 @@ async def test_import(
|
||||
assert issue_registry.async_get_issue(HA_DOMAIN, "deprecated_yaml_feedreader")
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("side_effect", "return_value", "expected_issue_id"),
|
||||
[
|
||||
(
|
||||
urllib.error.URLError("Test"),
|
||||
None,
|
||||
"import_yaml_error_feedreader_url_error_http_some_rss_local_rss_feed_xml",
|
||||
),
|
||||
(
|
||||
None,
|
||||
None,
|
||||
"import_yaml_error_feedreader_no_feed_entries_http_some_rss_local_rss_feed_xml",
|
||||
),
|
||||
],
|
||||
)
|
||||
async def test_import_errors(
|
||||
hass: HomeAssistant,
|
||||
issue_registry: ir.IssueRegistry,
|
||||
feedparser,
|
||||
setup_entry,
|
||||
feed_one_event,
|
||||
side_effect,
|
||||
return_value,
|
||||
expected_issue_id,
|
||||
) -> None:
|
||||
"""Test starting an import flow which results in an URL error."""
|
||||
config_entries = hass.config_entries.async_entries(DOMAIN)
|
||||
assert not config_entries
|
||||
|
||||
# raise URLError
|
||||
feedparser.side_effect = side_effect
|
||||
feedparser.return_value = return_value
|
||||
feedparser.side_effect = urllib.error.URLError("Test")
|
||||
feedparser.return_value = None
|
||||
assert await async_setup_component(hass, DOMAIN, {DOMAIN: {CONF_URLS: [URL]}})
|
||||
assert issue_registry.async_get_issue(DOMAIN, expected_issue_id)
|
||||
assert issue_registry.async_get_issue(
|
||||
DOMAIN,
|
||||
"import_yaml_error_feedreader_url_error_http_some_rss_local_rss_feed_xml",
|
||||
)
|
||||
|
||||
|
||||
async def test_reconfigure(hass: HomeAssistant, feedparser) -> None:
|
||||
@ -248,19 +223,6 @@ async def test_reconfigure_errors(
|
||||
assert result["step_id"] == "reconfigure_confirm"
|
||||
assert result["errors"] == {"base": "url_error"}
|
||||
|
||||
# no feed entries returned
|
||||
feedparser.side_effect = None
|
||||
feedparser.return_value = None
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"],
|
||||
user_input={
|
||||
CONF_URL: "http://other.rss.local/rss_feed.xml",
|
||||
},
|
||||
)
|
||||
assert result["type"] is FlowResultType.FORM
|
||||
assert result["step_id"] == "reconfigure_confirm"
|
||||
assert result["errors"] == {"base": "no_feed_entries"}
|
||||
|
||||
# success
|
||||
feedparser.side_effect = None
|
||||
feedparser.return_value = feed_one_event
|
||||
|
Loading…
x
Reference in New Issue
Block a user