|
10 | 10 | from zigpy.exceptions import ZigbeeException
|
11 | 11 | import zigpy.profiles.zha
|
12 | 12 | from zigpy.quirks.registry import DeviceRegistry
|
13 |
| -from zigpy.quirks.v2 import QuirkBuilder |
| 13 | +from zigpy.quirks.v2 import DeviceAlertLevel, DeviceAlertMetadata, QuirkBuilder |
14 | 14 | import zigpy.types
|
15 | 15 | from zigpy.zcl.clusters import general
|
16 | 16 | from zigpy.zcl.foundation import Status, WriteAttributesResponse
|
@@ -820,3 +820,36 @@ async def test_quirks_v2_device_renaming(zha_gateway: Gateway) -> None:
|
820 | 820 | zha_device = await join_zigpy_device(zha_gateway, zigpy_dev)
|
821 | 821 | assert zha_device.model == "IRIS Keypad V2"
|
822 | 822 | assert zha_device.manufacturer == "Lowe's"
|
| 823 | + |
| 824 | + |
| 825 | +async def test_quirks_v2_device_alerts(zha_gateway: Gateway) -> None: |
| 826 | + """Test quirks v2 device alerts.""" |
| 827 | + |
| 828 | + # Normal device, no alerts |
| 829 | + zigpy_dev = await zigpy_device_from_json( |
| 830 | + zha_gateway.application_controller, |
| 831 | + "tests/data/devices/ikea-of-sweden-tradfri-bulb-e26-opal-1000lm.json", |
| 832 | + ) |
| 833 | + zha_device = await join_zigpy_device(zha_gateway, zigpy_dev) |
| 834 | + assert not zha_device.device_alerts |
| 835 | + |
| 836 | + # Explicit alerts |
| 837 | + registry = DeviceRegistry() |
| 838 | + |
| 839 | + ( |
| 840 | + QuirkBuilder("CentraLite", "3405-L", registry=registry) |
| 841 | + .device_alert(level=DeviceAlertLevel.WARNING, message="Test warning") |
| 842 | + .add_to_registry() |
| 843 | + ) |
| 844 | + |
| 845 | + zigpy_dev = registry.get_device( |
| 846 | + await zigpy_device_from_json( |
| 847 | + zha_gateway.application_controller, |
| 848 | + "tests/data/devices/centralite-3405-l.json", |
| 849 | + ) |
| 850 | + ) |
| 851 | + |
| 852 | + zha_device = await join_zigpy_device(zha_gateway, zigpy_dev) |
| 853 | + assert zha_device.device_alerts == ( |
| 854 | + DeviceAlertMetadata(level=DeviceAlertLevel.WARNING, message="Test warning"), |
| 855 | + ) |
0 commit comments