55from miio import Device , MiotDevice , RoborockVacuum
66from miio .exceptions import DeviceInfoUnavailableException , PayloadDecodeException
77
8+ DEVICE_CLASSES = Device .__subclasses__ () + MiotDevice .__subclasses__ () # type: ignore
9+
810
911@pytest .mark .parametrize ("max_properties" , [None , 1 , 15 ])
1012def test_get_properties_splitting (mocker , max_properties ):
@@ -101,10 +103,11 @@ def test_missing_supported(mocker, caplog, cls, hidden):
101103 assert f"for class '{ cls .__name__ } '" in caplog .text
102104
103105
104- @pytest .mark .parametrize ("cls" , Device . __subclasses__ () )
106+ @pytest .mark .parametrize ("cls" , DEVICE_CLASSES )
105107def test_device_ctor_model (cls ):
106108 """Make sure that every device subclass ctor accepts model kwarg."""
107- ignore_classes = ["GatewayDevice" , "CustomDevice" ]
109+ # TODO Huizuo implements custom model fallback, so it needs to be ignored for now
110+ ignore_classes = ["GatewayDevice" , "CustomDevice" , "Huizuo" ]
108111 if cls .__name__ in ignore_classes :
109112 return
110113
@@ -113,7 +116,7 @@ def test_device_ctor_model(cls):
113116 assert dev .model == dummy_model
114117
115118
116- @pytest .mark .parametrize ("cls" , Device . __subclasses__ () )
119+ @pytest .mark .parametrize ("cls" , DEVICE_CLASSES )
117120def test_device_supported_models (cls ):
118121 """Make sure that every device subclass has a non-empty supported models."""
119122 if cls .__name__ == "MiotDevice" : # skip miotdevice
0 commit comments