tests: add type annotations to Smart tests (#1686)
Some checks are pending
CI / Perform Lint Checks (3.14) (push) Waiting to run
CI / Python 3.11 on macos-latest (push) Blocked by required conditions
CI / Python 3.12 on macos-latest (push) Blocked by required conditions
CI / Python 3.13 on macos-latest (push) Blocked by required conditions
CI / Python 3.14 on macos-latest (push) Blocked by required conditions
CI / Python 3.11 on ubuntu-latest (push) Blocked by required conditions
CI / Python 3.12 on ubuntu-latest (push) Blocked by required conditions
CI / Python 3.13 on ubuntu-latest (push) Blocked by required conditions
CI / Python 3.14 on ubuntu-latest (push) Blocked by required conditions
CI / Python 3.11 on windows-latest (push) Blocked by required conditions
CI / Python 3.12 on windows-latest (push) Blocked by required conditions
CI / Python 3.13 on windows-latest (push) Blocked by required conditions
CI / Python 3.14 on windows-latest (push) Blocked by required conditions
CodeQL Checks / Analyze (python) (push) Waiting to run

Add type annotations across all 'smart' tests, enabling mypy to check test function bodies, catching type errors that were previously hidden.
This commit is contained in:
ZeliardM
2026-07-07 18:11:59 -04:00
committed by GitHub
parent 8840fc395e
commit 88e1c27bd0
30 changed files with 192 additions and 125 deletions

View File

@@ -1,7 +1,7 @@
import pytest
from kasa import Module
from kasa.smart.modules import ChildProtection
from kasa.smart import SmartDevice
from ...device_fixtures import parametrize
@@ -19,9 +19,11 @@ child_protection = parametrize(
("child_lock", "enabled", bool),
],
)
async def test_features(dev, feature, prop_name, type):
async def test_features(
dev: SmartDevice, feature: str, prop_name: str, type: type
) -> None:
"""Test that features are registered and work as expected."""
protect: ChildProtection = dev.modules[Module.ChildProtection]
protect = dev.modules[Module.ChildProtection]
assert protect is not None
prop = getattr(protect, prop_name)
@@ -33,9 +35,9 @@ async def test_features(dev, feature, prop_name, type):
@child_protection
async def test_enabled(dev):
async def test_enabled(dev: SmartDevice) -> None:
"""Test the API."""
protect: ChildProtection = dev.modules[Module.ChildProtection]
protect = dev.modules[Module.ChildProtection]
assert protect is not None
assert isinstance(protect.enabled, bool)