mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Refactor constants in geo_json_events integration (#89912)
move constants to separate file
This commit is contained in:
parent
9f1e170851
commit
0bf652ca96
15
homeassistant/components/geo_json_events/const.py
Normal file
15
homeassistant/components/geo_json_events/const.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
"""Define constants for the GeoJSON events integration."""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from datetime import timedelta
|
||||||
|
from typing import Final
|
||||||
|
|
||||||
|
DOMAIN: Final = "geo_json_events"
|
||||||
|
|
||||||
|
ATTR_EXTERNAL_ID: Final = "external_id"
|
||||||
|
DEFAULT_RADIUS_IN_KM: Final = 20.0
|
||||||
|
DEFAULT_SCAN_INTERVAL: Final = timedelta(minutes=5)
|
||||||
|
SOURCE: Final = "geo_json_events"
|
||||||
|
|
||||||
|
SIGNAL_DELETE_ENTITY: Final = "geo_json_events_delete_{}"
|
||||||
|
SIGNAL_UPDATE_ENTITY: Final = "geo_json_events_update_{}"
|
@ -26,18 +26,18 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
|||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
|
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
|
||||||
|
|
||||||
|
from .const import (
|
||||||
|
ATTR_EXTERNAL_ID,
|
||||||
|
DEFAULT_RADIUS_IN_KM,
|
||||||
|
DEFAULT_SCAN_INTERVAL,
|
||||||
|
SIGNAL_DELETE_ENTITY,
|
||||||
|
SIGNAL_UPDATE_ENTITY,
|
||||||
|
SOURCE,
|
||||||
|
)
|
||||||
from .manager import GeoJsonFeedEntityManager
|
from .manager import GeoJsonFeedEntityManager
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
ATTR_EXTERNAL_ID = "external_id"
|
|
||||||
|
|
||||||
DEFAULT_RADIUS_IN_KM = 20.0
|
|
||||||
|
|
||||||
SCAN_INTERVAL = timedelta(minutes=5)
|
|
||||||
|
|
||||||
SOURCE = "geo_json_events"
|
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
{
|
{
|
||||||
vol.Required(CONF_URL): cv.string,
|
vol.Required(CONF_URL): cv.string,
|
||||||
@ -56,7 +56,7 @@ async def async_setup_platform(
|
|||||||
) -> None:
|
) -> None:
|
||||||
"""Set up the GeoJSON Events platform."""
|
"""Set up the GeoJSON Events platform."""
|
||||||
url: str = config[CONF_URL]
|
url: str = config[CONF_URL]
|
||||||
scan_interval: timedelta = config.get(CONF_SCAN_INTERVAL, SCAN_INTERVAL)
|
scan_interval: timedelta = config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
|
||||||
coordinates: tuple[float, float] = (
|
coordinates: tuple[float, float] = (
|
||||||
config.get(CONF_LATITUDE, hass.config.latitude),
|
config.get(CONF_LATITUDE, hass.config.latitude),
|
||||||
config.get(CONF_LONGITUDE, hass.config.longitude),
|
config.get(CONF_LONGITUDE, hass.config.longitude),
|
||||||
@ -106,12 +106,12 @@ class GeoJsonLocationEvent(GeolocationEvent):
|
|||||||
"""Call when entity is added to hass."""
|
"""Call when entity is added to hass."""
|
||||||
self._remove_signal_delete = async_dispatcher_connect(
|
self._remove_signal_delete = async_dispatcher_connect(
|
||||||
self.hass,
|
self.hass,
|
||||||
f"geo_json_events_delete_{self._external_id}",
|
SIGNAL_DELETE_ENTITY.format(self._external_id),
|
||||||
self._delete_callback,
|
self._delete_callback,
|
||||||
)
|
)
|
||||||
self._remove_signal_update = async_dispatcher_connect(
|
self._remove_signal_update = async_dispatcher_connect(
|
||||||
self.hass,
|
self.hass,
|
||||||
f"geo_json_events_update_{self._external_id}",
|
SIGNAL_UPDATE_ENTITY.format(self._external_id),
|
||||||
self._update_callback,
|
self._update_callback,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ from homeassistant.helpers import aiohttp_client
|
|||||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||||
from homeassistant.helpers.event import async_track_time_interval
|
from homeassistant.helpers.event import async_track_time_interval
|
||||||
|
|
||||||
DOMAIN = "geo_json_events"
|
from .const import DOMAIN, SIGNAL_DELETE_ENTITY, SIGNAL_UPDATE_ENTITY
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -77,8 +77,8 @@ class GeoJsonFeedEntityManager:
|
|||||||
|
|
||||||
async def _update_entity(self, external_id: str) -> None:
|
async def _update_entity(self, external_id: str) -> None:
|
||||||
"""Update entity."""
|
"""Update entity."""
|
||||||
async_dispatcher_send(self._hass, f"geo_json_events_update_{external_id}")
|
async_dispatcher_send(self._hass, SIGNAL_UPDATE_ENTITY.format(external_id))
|
||||||
|
|
||||||
async def _remove_entity(self, external_id: str) -> None:
|
async def _remove_entity(self, external_id: str) -> None:
|
||||||
"""Remove entity."""
|
"""Remove entity."""
|
||||||
async_dispatcher_send(self._hass, f"geo_json_events_delete_{external_id}")
|
async_dispatcher_send(self._hass, SIGNAL_DELETE_ENTITY.format(external_id))
|
||||||
|
@ -5,9 +5,9 @@ from aio_geojson_generic_client import GenericFeed
|
|||||||
from freezegun import freeze_time
|
from freezegun import freeze_time
|
||||||
|
|
||||||
from homeassistant.components import geo_location
|
from homeassistant.components import geo_location
|
||||||
from homeassistant.components.geo_json_events.geo_location import (
|
from homeassistant.components.geo_json_events.const import (
|
||||||
ATTR_EXTERNAL_ID,
|
ATTR_EXTERNAL_ID,
|
||||||
SCAN_INTERVAL,
|
DEFAULT_SCAN_INTERVAL,
|
||||||
)
|
)
|
||||||
from homeassistant.components.geo_location import ATTR_SOURCE
|
from homeassistant.components.geo_location import ATTR_SOURCE
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
@ -132,7 +132,7 @@ async def test_setup(hass: HomeAssistant) -> None:
|
|||||||
"OK",
|
"OK",
|
||||||
[mock_entry_1, mock_entry_4, mock_entry_3],
|
[mock_entry_1, mock_entry_4, mock_entry_3],
|
||||||
)
|
)
|
||||||
async_fire_time_changed(hass, utcnow + SCAN_INTERVAL)
|
async_fire_time_changed(hass, utcnow + DEFAULT_SCAN_INTERVAL)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
all_states = hass.states.async_all()
|
all_states = hass.states.async_all()
|
||||||
@ -141,7 +141,7 @@ async def test_setup(hass: HomeAssistant) -> None:
|
|||||||
# Simulate an update - empty data, but successful update,
|
# Simulate an update - empty data, but successful update,
|
||||||
# so no changes to entities.
|
# so no changes to entities.
|
||||||
mock_feed_update.return_value = "OK_NO_DATA", None
|
mock_feed_update.return_value = "OK_NO_DATA", None
|
||||||
async_fire_time_changed(hass, utcnow + 2 * SCAN_INTERVAL)
|
async_fire_time_changed(hass, utcnow + 2 * DEFAULT_SCAN_INTERVAL)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
all_states = hass.states.async_all()
|
all_states = hass.states.async_all()
|
||||||
@ -149,7 +149,7 @@ async def test_setup(hass: HomeAssistant) -> None:
|
|||||||
|
|
||||||
# Simulate an update - empty data, removes all entities
|
# Simulate an update - empty data, removes all entities
|
||||||
mock_feed_update.return_value = "ERROR", None
|
mock_feed_update.return_value = "ERROR", None
|
||||||
async_fire_time_changed(hass, utcnow + 3 * SCAN_INTERVAL)
|
async_fire_time_changed(hass, utcnow + 3 * DEFAULT_SCAN_INTERVAL)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
all_states = hass.states.async_all()
|
all_states = hass.states.async_all()
|
||||||
@ -227,7 +227,7 @@ async def test_setup_race_condition(hass: HomeAssistant) -> None:
|
|||||||
|
|
||||||
# Simulate an update - empty data, removes all entities
|
# Simulate an update - empty data, removes all entities
|
||||||
mock_feed_update.return_value = "ERROR", None
|
mock_feed_update.return_value = "ERROR", None
|
||||||
async_fire_time_changed(hass, utcnow + SCAN_INTERVAL)
|
async_fire_time_changed(hass, utcnow + DEFAULT_SCAN_INTERVAL)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
all_states = hass.states.async_all()
|
all_states = hass.states.async_all()
|
||||||
@ -237,7 +237,7 @@ async def test_setup_race_condition(hass: HomeAssistant) -> None:
|
|||||||
|
|
||||||
# Simulate an update - 1 entry
|
# Simulate an update - 1 entry
|
||||||
mock_feed_update.return_value = "OK", [mock_entry_1]
|
mock_feed_update.return_value = "OK", [mock_entry_1]
|
||||||
async_fire_time_changed(hass, utcnow + 2 * SCAN_INTERVAL)
|
async_fire_time_changed(hass, utcnow + 2 * DEFAULT_SCAN_INTERVAL)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
all_states = hass.states.async_all()
|
all_states = hass.states.async_all()
|
||||||
@ -247,7 +247,7 @@ async def test_setup_race_condition(hass: HomeAssistant) -> None:
|
|||||||
|
|
||||||
# Simulate an update - 1 entry
|
# Simulate an update - 1 entry
|
||||||
mock_feed_update.return_value = "OK", [mock_entry_1]
|
mock_feed_update.return_value = "OK", [mock_entry_1]
|
||||||
async_fire_time_changed(hass, utcnow + 3 * SCAN_INTERVAL)
|
async_fire_time_changed(hass, utcnow + 3 * DEFAULT_SCAN_INTERVAL)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
all_states = hass.states.async_all()
|
all_states = hass.states.async_all()
|
||||||
@ -257,7 +257,7 @@ async def test_setup_race_condition(hass: HomeAssistant) -> None:
|
|||||||
|
|
||||||
# Simulate an update - empty data, removes all entities
|
# Simulate an update - empty data, removes all entities
|
||||||
mock_feed_update.return_value = "ERROR", None
|
mock_feed_update.return_value = "ERROR", None
|
||||||
async_fire_time_changed(hass, utcnow + 4 * SCAN_INTERVAL)
|
async_fire_time_changed(hass, utcnow + 4 * DEFAULT_SCAN_INTERVAL)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
all_states = hass.states.async_all()
|
all_states = hass.states.async_all()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user