|
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