SQL fix entry options save (#78145)

* SQL fix options

* Testing
This commit is contained in:
G Johansson 2022-09-28 08:49:37 +02:00 committed by GitHub
parent 3d3aa824b3
commit 18be5f1387
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 7 deletions

View file

@ -155,6 +155,7 @@ class SQLOptionsFlowHandler(config_entries.OptionsFlow):
db_url = user_input.get(CONF_DB_URL, db_url_default)
query = user_input[CONF_QUERY]
column = user_input[CONF_COLUMN_NAME]
name = self.entry.options.get(CONF_NAME, self.entry.title)
try:
validate_sql_select(query)
@ -169,8 +170,8 @@ class SQLOptionsFlowHandler(config_entries.OptionsFlow):
return self.async_create_entry(
title="",
data={
CONF_NAME: self.entry.title,
**self.entry.options,
CONF_NAME: name,
CONF_DB_URL: db_url,
**user_input,
},
)

View file

@ -6,6 +6,7 @@ from unittest.mock import patch
from sqlalchemy.exc import SQLAlchemyError
from homeassistant import config_entries
from homeassistant.components.recorder import DEFAULT_DB_FILE, DEFAULT_URL
from homeassistant.components.sql.const import DOMAIN
from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResultType
@ -213,7 +214,6 @@ async def test_options_flow(hass: HomeAssistant, recorder_mock) -> None:
"db_url": "sqlite://",
"query": "SELECT 5 as size",
"column": "size",
"value_template": None,
"unit_of_measurement": "MiB",
}
@ -266,7 +266,6 @@ async def test_options_flow_name_previously_removed(
"db_url": "sqlite://",
"query": "SELECT 5 as size",
"column": "size",
"value_template": None,
"unit_of_measurement": "MiB",
}
@ -363,7 +362,6 @@ async def test_options_flow_fails_invalid_query(
assert result4["type"] == FlowResultType.CREATE_ENTRY
assert result4["data"] == {
"name": "Get Value",
"value_template": None,
"db_url": "sqlite://",
"query": "SELECT 5 as size",
"column": "size",
@ -415,12 +413,13 @@ async def test_options_flow_db_url_empty(hass: HomeAssistant, recorder_mock) ->
)
await hass.async_block_till_done()
db_url = DEFAULT_URL.format(hass_config_path=hass.config.path(DEFAULT_DB_FILE))
assert result["type"] == FlowResultType.CREATE_ENTRY
assert result["data"] == {
"name": "Get Value",
"db_url": "sqlite://",
"db_url": db_url,
"query": "SELECT 5 as size",
"column": "size",
"value_template": None,
"unit_of_measurement": "MiB",
}