Move imports in sql component (#27713)
* move imports in sql component * fix: variable redeclaration * fix: close test db session on platform setup
This commit is contained in:
parent
9571f869d1
commit
ed46834a30
2 changed files with 11 additions and 10 deletions
|
@ -1,13 +1,15 @@
|
||||||
"""Sensor from an SQL Query."""
|
"""Sensor from an SQL Query."""
|
||||||
import decimal
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import decimal
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
import sqlalchemy
|
||||||
|
from sqlalchemy.orm import scoped_session, sessionmaker
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
from homeassistant.components.recorder import CONF_DB_URL, DEFAULT_DB_FILE, DEFAULT_URL
|
||||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||||
from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE
|
from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE
|
||||||
from homeassistant.components.recorder import CONF_DB_URL, DEFAULT_URL, DEFAULT_DB_FILE
|
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
|
@ -46,20 +48,19 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
||||||
if not db_url:
|
if not db_url:
|
||||||
db_url = DEFAULT_URL.format(hass_config_path=hass.config.path(DEFAULT_DB_FILE))
|
db_url = DEFAULT_URL.format(hass_config_path=hass.config.path(DEFAULT_DB_FILE))
|
||||||
|
|
||||||
import sqlalchemy
|
|
||||||
from sqlalchemy.orm import sessionmaker, scoped_session
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
engine = sqlalchemy.create_engine(db_url)
|
engine = sqlalchemy.create_engine(db_url)
|
||||||
sessionmaker = scoped_session(sessionmaker(bind=engine))
|
sessmaker = scoped_session(sessionmaker(bind=engine))
|
||||||
|
|
||||||
# Run a dummy query just to test the db_url
|
# Run a dummy query just to test the db_url
|
||||||
sess = sessionmaker()
|
sess = sessmaker()
|
||||||
sess.execute("SELECT 1;")
|
sess.execute("SELECT 1;")
|
||||||
|
|
||||||
except sqlalchemy.exc.SQLAlchemyError as err:
|
except sqlalchemy.exc.SQLAlchemyError as err:
|
||||||
_LOGGER.error("Couldn't connect using %s DB_URL: %s", db_url, err)
|
_LOGGER.error("Couldn't connect using %s DB_URL: %s", db_url, err)
|
||||||
return
|
return
|
||||||
|
finally:
|
||||||
|
sess.close()
|
||||||
|
|
||||||
queries = []
|
queries = []
|
||||||
|
|
||||||
|
@ -74,7 +75,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
||||||
value_template.hass = hass
|
value_template.hass = hass
|
||||||
|
|
||||||
sensor = SQLSensor(
|
sensor = SQLSensor(
|
||||||
name, sessionmaker, query_str, column_name, unit, value_template
|
name, sessmaker, query_str, column_name, unit, value_template
|
||||||
)
|
)
|
||||||
queries.append(sensor)
|
queries.append(sensor)
|
||||||
|
|
||||||
|
@ -120,7 +121,6 @@ class SQLSensor(Entity):
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Retrieve sensor data from the query."""
|
"""Retrieve sensor data from the query."""
|
||||||
import sqlalchemy
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
sess = self.sessionmaker()
|
sess = self.sessionmaker()
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
"""The test for the sql sensor platform."""
|
"""The test for the sql sensor platform."""
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.components.sql.sensor import validate_sql_select
|
from homeassistant.components.sql.sensor import validate_sql_select
|
||||||
from homeassistant.setup import setup_component
|
|
||||||
from homeassistant.const import STATE_UNKNOWN
|
from homeassistant.const import STATE_UNKNOWN
|
||||||
|
from homeassistant.setup import setup_component
|
||||||
|
|
||||||
from tests.common import get_test_home_assistant
|
from tests.common import get_test_home_assistant
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue