mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Fix legacy scrape scan interval (#81764)
* Fix legacy scrape scan interval * Adjust init * Adjust tests * Clearer default
This commit is contained in:
parent
6975186f2f
commit
4cce359960
@ -60,13 +60,8 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||||||
load_coroutines: list[Coroutine[Any, Any, None]] = []
|
load_coroutines: list[Coroutine[Any, Any, None]] = []
|
||||||
for resource_config in scrape_config:
|
for resource_config in scrape_config:
|
||||||
rest = create_rest_data_from_config(hass, resource_config)
|
rest = create_rest_data_from_config(hass, resource_config)
|
||||||
coordinator = ScrapeCoordinator(
|
scan_interval: timedelta = config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
|
||||||
hass,
|
coordinator = ScrapeCoordinator(hass, rest, scan_interval)
|
||||||
rest,
|
|
||||||
timedelta(
|
|
||||||
seconds=resource_config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
sensors: list[ConfigType] = resource_config.get(SENSOR_DOMAIN, [])
|
sensors: list[ConfigType] = resource_config.get(SENSOR_DOMAIN, [])
|
||||||
if sensors:
|
if sensors:
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
"""Constants for Scrape integration."""
|
"""Constants for Scrape integration."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
from homeassistant.const import Platform
|
from homeassistant.const import Platform
|
||||||
|
|
||||||
DOMAIN = "scrape"
|
DOMAIN = "scrape"
|
||||||
DEFAULT_NAME = "Web scrape"
|
DEFAULT_NAME = "Web scrape"
|
||||||
DEFAULT_VERIFY_SSL = True
|
DEFAULT_VERIFY_SSL = True
|
||||||
DEFAULT_SCAN_INTERVAL = 60 * 10
|
DEFAULT_SCAN_INTERVAL = timedelta(minutes=10)
|
||||||
|
|
||||||
PLATFORMS = [Platform.SENSOR]
|
PLATFORMS = [Platform.SENSOR]
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ from homeassistant.const import (
|
|||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
CONF_PASSWORD,
|
CONF_PASSWORD,
|
||||||
CONF_RESOURCE,
|
CONF_RESOURCE,
|
||||||
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_UNIQUE_ID,
|
CONF_UNIQUE_ID,
|
||||||
CONF_UNIT_OF_MEASUREMENT,
|
CONF_UNIT_OF_MEASUREMENT,
|
||||||
CONF_USERNAME,
|
CONF_USERNAME,
|
||||||
@ -43,13 +44,18 @@ from homeassistant.helpers.template_entity import (
|
|||||||
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
|
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
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
|
from .coordinator import ScrapeCoordinator
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
SCAN_INTERVAL = timedelta(minutes=10)
|
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend(
|
||||||
{
|
{
|
||||||
# Linked to the loading of the page (can be linked to RestData)
|
# 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)
|
resource_config = vol.Schema(RESOURCE_SCHEMA, extra=vol.REMOVE_EXTRA)(config)
|
||||||
rest = create_rest_data_from_config(hass, resource_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 = [
|
sensors_config = [
|
||||||
vol.Schema(TEMPLATE_SENSOR_BASE_SCHEMA.schema, extra=vol.ALLOW_EXTRA)(
|
vol.Schema(TEMPLATE_SENSOR_BASE_SCHEMA.schema, extra=vol.ALLOW_EXTRA)(
|
||||||
|
@ -6,8 +6,7 @@ from unittest.mock import patch
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant.components.scrape.const import DOMAIN
|
from homeassistant.components.scrape.const import DEFAULT_SCAN_INTERVAL, DOMAIN
|
||||||
from homeassistant.components.scrape.sensor import SCAN_INTERVAL
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
from homeassistant.setup import async_setup_component
|
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
|
assert "Platform scrape not ready yet" in caplog.text
|
||||||
|
|
||||||
mocker.payload = "test_scrape_sensor"
|
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()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
state = hass.states.get("sensor.ha_version")
|
state = hass.states.get("sensor.ha_version")
|
||||||
|
@ -6,7 +6,7 @@ from unittest.mock import patch
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant.components.scrape.sensor import SCAN_INTERVAL
|
from homeassistant.components.scrape.const import DEFAULT_SCAN_INTERVAL
|
||||||
from homeassistant.components.sensor import (
|
from homeassistant.components.sensor import (
|
||||||
CONF_STATE_CLASS,
|
CONF_STATE_CLASS,
|
||||||
DOMAIN as SENSOR_DOMAIN,
|
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"
|
assert state.state == "Current Version: 2021.12.10"
|
||||||
|
|
||||||
mocker.payload = "test_scrape_sensor_no_data"
|
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()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
state = hass.states.get("sensor.ha_version")
|
state = hass.states.get("sensor.ha_version")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user