mirror of
https://github.com/python-kasa/python-kasa.git
synced 2024-12-24 20:23:35 +00:00
6a86ffbbba
This will catch common issues with pytest code. * Use `match` when using `pytest.raises()` for base exception types like `TypeError` or `ValueError` * Use tuples for `parametrize()` * Enforces `pytest.raises()` to contain simple statements, using `noqa` to skip this on some cases for now. * Fixes incorrect exception type (valueerror instead of typeerror) for iotdimmer. * Adds check valid types for `iotbulb.set_hsv` and `color` smart module. * Consolidate exception messages for common interface modules.
29 lines
719 B
Python
29 lines
719 B
Python
import pytest
|
|
|
|
from kasa.smart.modules import HumiditySensor
|
|
from kasa.tests.device_fixtures import parametrize
|
|
|
|
humidity = parametrize(
|
|
"has humidity", component_filter="humidity", protocol_filter={"SMART.CHILD"}
|
|
)
|
|
|
|
|
|
@humidity
|
|
@pytest.mark.parametrize(
|
|
("feature", "type"),
|
|
[
|
|
("humidity", int),
|
|
("humidity_warning", bool),
|
|
],
|
|
)
|
|
async def test_humidity_features(dev, feature, type):
|
|
"""Test that features are registered and work as expected."""
|
|
humidity: HumiditySensor = dev.modules["HumiditySensor"]
|
|
|
|
prop = getattr(humidity, feature)
|
|
assert isinstance(prop, type)
|
|
|
|
feat = dev.features[feature]
|
|
assert feat.value == prop
|
|
assert isinstance(feat.value, type)
|