mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 16:27:08 +00:00
Add Picnic last_order_max_order_time sensor (#63169)
This commit is contained in:
parent
53496c019c
commit
ec75b0caf0
@ -35,6 +35,7 @@ SENSOR_LAST_ORDER_SLOT_END = "last_order_slot_end"
|
|||||||
SENSOR_LAST_ORDER_STATUS = "last_order_status"
|
SENSOR_LAST_ORDER_STATUS = "last_order_status"
|
||||||
SENSOR_LAST_ORDER_ETA_START = "last_order_eta_start"
|
SENSOR_LAST_ORDER_ETA_START = "last_order_eta_start"
|
||||||
SENSOR_LAST_ORDER_ETA_END = "last_order_eta_end"
|
SENSOR_LAST_ORDER_ETA_END = "last_order_eta_end"
|
||||||
|
SENSOR_LAST_ORDER_MAX_ORDER_TIME = "last_order_max_order_time"
|
||||||
SENSOR_LAST_ORDER_DELIVERY_TIME = "last_order_delivery_time"
|
SENSOR_LAST_ORDER_DELIVERY_TIME = "last_order_delivery_time"
|
||||||
SENSOR_LAST_ORDER_TOTAL_PRICE = "last_order_total_price"
|
SENSOR_LAST_ORDER_TOTAL_PRICE = "last_order_total_price"
|
||||||
|
|
||||||
@ -149,6 +150,16 @@ SENSOR_TYPES: tuple[PicnicSensorEntityDescription, ...] = (
|
|||||||
str(last_order.get("eta", {}).get("end"))
|
str(last_order.get("eta", {}).get("end"))
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
PicnicSensorEntityDescription(
|
||||||
|
key=SENSOR_LAST_ORDER_MAX_ORDER_TIME,
|
||||||
|
device_class=SensorDeviceClass.TIMESTAMP,
|
||||||
|
icon="mdi:clock-alert-outline",
|
||||||
|
entity_registry_enabled_default=True,
|
||||||
|
data_type="last_order_data",
|
||||||
|
value_fn=lambda last_order: dt_util.parse_datetime(
|
||||||
|
str(last_order.get("slot", {}).get("cut_off_time"))
|
||||||
|
),
|
||||||
|
),
|
||||||
PicnicSensorEntityDescription(
|
PicnicSensorEntityDescription(
|
||||||
key=SENSOR_LAST_ORDER_DELIVERY_TIME,
|
key=SENSOR_LAST_ORDER_DELIVERY_TIME,
|
||||||
device_class=SensorDeviceClass.TIMESTAMP,
|
device_class=SensorDeviceClass.TIMESTAMP,
|
||||||
|
@ -249,6 +249,11 @@ class TestPicnicSensor(unittest.IsolatedAsyncioTestCase):
|
|||||||
"2021-02-26T20:14:00+00:00",
|
"2021-02-26T20:14:00+00:00",
|
||||||
cls=SensorDeviceClass.TIMESTAMP,
|
cls=SensorDeviceClass.TIMESTAMP,
|
||||||
)
|
)
|
||||||
|
self._assert_sensor(
|
||||||
|
"sensor.picnic_last_order_max_order_time",
|
||||||
|
"2021-02-25T21:00:00+00:00",
|
||||||
|
cls=SensorDeviceClass.TIMESTAMP,
|
||||||
|
)
|
||||||
self._assert_sensor(
|
self._assert_sensor(
|
||||||
"sensor.picnic_last_order_delivery_time",
|
"sensor.picnic_last_order_delivery_time",
|
||||||
"2021-02-26T19:54:05+00:00",
|
"2021-02-26T19:54:05+00:00",
|
||||||
@ -385,6 +390,9 @@ class TestPicnicSensor(unittest.IsolatedAsyncioTestCase):
|
|||||||
)
|
)
|
||||||
self._assert_sensor("sensor.picnic_last_order_eta_start", STATE_UNAVAILABLE)
|
self._assert_sensor("sensor.picnic_last_order_eta_start", STATE_UNAVAILABLE)
|
||||||
self._assert_sensor("sensor.picnic_last_order_eta_end", STATE_UNAVAILABLE)
|
self._assert_sensor("sensor.picnic_last_order_eta_end", STATE_UNAVAILABLE)
|
||||||
|
self._assert_sensor(
|
||||||
|
"sensor.picnic_last_order_max_order_time", STATE_UNAVAILABLE
|
||||||
|
)
|
||||||
self._assert_sensor("sensor.picnic_last_order_delivery_time", STATE_UNAVAILABLE)
|
self._assert_sensor("sensor.picnic_last_order_delivery_time", STATE_UNAVAILABLE)
|
||||||
|
|
||||||
async def test_sensors_malformed_delivery_data(self):
|
async def test_sensors_malformed_delivery_data(self):
|
||||||
@ -400,6 +408,7 @@ class TestPicnicSensor(unittest.IsolatedAsyncioTestCase):
|
|||||||
assert self._coordinator.last_update_success is True
|
assert self._coordinator.last_update_success is True
|
||||||
self._assert_sensor("sensor.picnic_last_order_eta_start", STATE_UNKNOWN)
|
self._assert_sensor("sensor.picnic_last_order_eta_start", STATE_UNKNOWN)
|
||||||
self._assert_sensor("sensor.picnic_last_order_eta_end", STATE_UNKNOWN)
|
self._assert_sensor("sensor.picnic_last_order_eta_end", STATE_UNKNOWN)
|
||||||
|
self._assert_sensor("sensor.picnic_last_order_max_order_time", STATE_UNKNOWN)
|
||||||
self._assert_sensor("sensor.picnic_last_order_delivery_time", STATE_UNKNOWN)
|
self._assert_sensor("sensor.picnic_last_order_delivery_time", STATE_UNKNOWN)
|
||||||
|
|
||||||
async def test_sensors_malformed_response(self):
|
async def test_sensors_malformed_response(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user