Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 15 additions & 6 deletions homeassistant/components/tesla/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,14 @@
configured_instances,
validate_input,
)
from .const import DATA_LISTENER, DOMAIN, ICONS, TESLA_COMPONENTS
from .const import (
DATA_LISTENER,
DEFAULT_SCAN_INTERVAL,
DOMAIN,
ICONS,
MIN_SCAN_INTERVAL,
TESLA_COMPONENTS,
)

_LOGGER = logging.getLogger(__name__)

Expand All @@ -36,9 +43,9 @@
{
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Optional(CONF_SCAN_INTERVAL, default=300): vol.All(
cv.positive_int, vol.Clamp(min=300)
),
vol.Optional(
CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL
): vol.All(cv.positive_int, vol.Clamp(min=MIN_SCAN_INTERVAL)),
}
)
},
Expand All @@ -63,7 +70,7 @@ async def async_setup(hass, base_config):

def _update_entry(email, data=None, options=None):
data = data or {}
options = options or {CONF_SCAN_INTERVAL: 300}
options = options or {CONF_SCAN_INTERVAL: DEFAULT_SCAN_INTERVAL}
for entry in hass.config_entries.async_entries(DOMAIN):
if email != entry.title:
continue
Expand Down Expand Up @@ -119,7 +126,9 @@ async def async_setup_entry(hass, config_entry):
websession,
refresh_token=config[CONF_TOKEN],
access_token=config[CONF_ACCESS_TOKEN],
update_interval=config_entry.options.get(CONF_SCAN_INTERVAL, 300),
update_interval=config_entry.options.get(
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
),
)
(refresh_token, access_token) = await controller.connect()
except TeslaException as ex:
Expand Down
10 changes: 6 additions & 4 deletions homeassistant/components/tesla/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from homeassistant.core import callback
from homeassistant.helpers import aiohttp_client, config_validation as cv

from .const import DOMAIN
from .const import DEFAULT_SCAN_INTERVAL, DOMAIN, MIN_SCAN_INTERVAL

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -100,8 +100,10 @@ async def async_step_init(self, user_input=None):
{
vol.Optional(
CONF_SCAN_INTERVAL,
default=self.config_entry.options.get(CONF_SCAN_INTERVAL, 300),
): vol.All(cv.positive_int, vol.Clamp(min=300))
default=self.config_entry.options.get(
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
),
): vol.All(cv.positive_int, vol.Clamp(min=MIN_SCAN_INTERVAL))
}
)
return self.async_show_form(step_id="init", data_schema=data_schema)
Expand All @@ -120,7 +122,7 @@ async def validate_input(hass: core.HomeAssistant, data):
websession,
email=data[CONF_USERNAME],
password=data[CONF_PASSWORD],
update_interval=300,
update_interval=DEFAULT_SCAN_INTERVAL,
)
(config[CONF_TOKEN], config[CONF_ACCESS_TOKEN]) = await controller.connect(
test_login=True
Expand Down
2 changes: 2 additions & 0 deletions homeassistant/components/tesla/const.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
"""Const file for Tesla cars."""
DOMAIN = "tesla"
DATA_LISTENER = "listener"
DEFAULT_SCAN_INTERVAL = 660
MIN_SCAN_INTERVAL = 60
TESLA_COMPONENTS = [
"sensor",
"lock",
Expand Down
8 changes: 4 additions & 4 deletions tests/components/tesla/test_config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from teslajsonpy import TeslaException

from homeassistant import config_entries, data_entry_flow, setup
from homeassistant.components.tesla.const import DOMAIN
from homeassistant.components.tesla.const import DOMAIN, MIN_SCAN_INTERVAL
from homeassistant.const import (
CONF_ACCESS_TOKEN,
CONF_PASSWORD,
Expand Down Expand Up @@ -40,8 +40,8 @@ async def test_form(hass):
assert result2["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
assert result2["title"] == "test@email.com"
assert result2["data"] == {
"token": "test-refresh-token",
"access_token": "test-access-token",
CONF_TOKEN: "test-refresh-token",
CONF_ACCESS_TOKEN: "test-access-token",
}
await hass.async_block_till_done()
assert len(mock_setup.mock_calls) == 1
Expand Down Expand Up @@ -157,4 +157,4 @@ async def test_option_flow_input_floor(hass):
result["flow_id"], user_input={CONF_SCAN_INTERVAL: 1}
)
assert result["type"] == "create_entry"
assert result["data"] == {CONF_SCAN_INTERVAL: 300}
assert result["data"] == {CONF_SCAN_INTERVAL: MIN_SCAN_INTERVAL}