Fix legacy scrape scan interval (#81764)

* Fix legacy scrape scan interval

* Adjust init

* Adjust tests

* Clearer default
This commit is contained in:
epenet 2022-11-15 13:39:30 +01:00 committed by GitHub
parent 6975186f2f
commit 4cce359960
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 17 deletions

View File

@ -60,13 +60,8 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
load_coroutines: list[Coroutine[Any, Any, None]] = []
for resource_config in scrape_config:
rest = create_rest_data_from_config(hass, resource_config)
coordinator = ScrapeCoordinator(
hass,
rest,
timedelta(
seconds=resource_config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
),
)
scan_interval: timedelta = config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
coordinator = ScrapeCoordinator(hass, rest, scan_interval)
sensors: list[ConfigType] = resource_config.get(SENSOR_DOMAIN, [])
if sensors:

View File

@ -1,12 +1,14 @@
"""Constants for Scrape integration."""
from __future__ import annotations
from datetime import timedelta
from homeassistant.const import Platform
DOMAIN = "scrape"
DEFAULT_NAME = "Web scrape"
DEFAULT_VERIFY_SSL = True
DEFAULT_SCAN_INTERVAL = 60 * 10
DEFAULT_SCAN_INTERVAL = timedelta(minutes=10)
PLATFORMS = [Platform.SENSOR]

View File

@ -22,6 +22,7 @@ from homeassistant.const import (
CONF_NAME,
CONF_PASSWORD,
CONF_RESOURCE,
CONF_SCAN_INTERVAL,
CONF_UNIQUE_ID,
CONF_UNIT_OF_MEASUREMENT,
CONF_USERNAME,
@ -43,13 +44,18 @@ from homeassistant.helpers.template_entity import (
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import CONF_INDEX, CONF_SELECT, DEFAULT_NAME, DEFAULT_VERIFY_SSL, DOMAIN
from .const import (
CONF_INDEX,
CONF_SELECT,
DEFAULT_NAME,
DEFAULT_SCAN_INTERVAL,
DEFAULT_VERIFY_SSL,
DOMAIN,
)
from .coordinator import ScrapeCoordinator
_LOGGER = logging.getLogger(__name__)
SCAN_INTERVAL = timedelta(minutes=10)
PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend(
{
# Linked to the loading of the page (can be linked to RestData)
@ -98,7 +104,8 @@ async def async_setup_platform(
resource_config = vol.Schema(RESOURCE_SCHEMA, extra=vol.REMOVE_EXTRA)(config)
rest = create_rest_data_from_config(hass, resource_config)
coordinator = ScrapeCoordinator(hass, rest, SCAN_INTERVAL)
scan_interval: timedelta = config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
coordinator = ScrapeCoordinator(hass, rest, scan_interval)
sensors_config = [
vol.Schema(TEMPLATE_SENSOR_BASE_SCHEMA.schema, extra=vol.ALLOW_EXTRA)(

View File

@ -6,8 +6,7 @@ from unittest.mock import patch
import pytest
from homeassistant.components.scrape.const import DOMAIN
from homeassistant.components.scrape.sensor import SCAN_INTERVAL
from homeassistant.components.scrape.const import DEFAULT_SCAN_INTERVAL, DOMAIN
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from homeassistant.setup import async_setup_component
@ -67,7 +66,7 @@ async def test_setup_no_data_fails_with_recovery(
assert "Platform scrape not ready yet" in caplog.text
mocker.payload = "test_scrape_sensor"
async_fire_time_changed(hass, datetime.utcnow() + SCAN_INTERVAL)
async_fire_time_changed(hass, datetime.utcnow() + DEFAULT_SCAN_INTERVAL)
await hass.async_block_till_done()
state = hass.states.get("sensor.ha_version")

View File

@ -6,7 +6,7 @@ from unittest.mock import patch
import pytest
from homeassistant.components.scrape.sensor import SCAN_INTERVAL
from homeassistant.components.scrape.const import DEFAULT_SCAN_INTERVAL
from homeassistant.components.sensor import (
CONF_STATE_CLASS,
DOMAIN as SENSOR_DOMAIN,
@ -298,7 +298,7 @@ async def test_scrape_sensor_no_data_refresh(hass: HomeAssistant) -> None:
assert state.state == "Current Version: 2021.12.10"
mocker.payload = "test_scrape_sensor_no_data"
async_fire_time_changed(hass, datetime.utcnow() + SCAN_INTERVAL)
async_fire_time_changed(hass, datetime.utcnow() + DEFAULT_SCAN_INTERVAL)
await hass.async_block_till_done()
state = hass.states.get("sensor.ha_version")