python-kasa/kasa/tests
Steven B c5d65b624b
Make get_module return typed module (#892)
Passing in a string still works and returns either `IotModule` or
`SmartModule` type when called on `IotDevice` or `SmartDevice`
respectively. When calling on `Device` will return `Module` type.

Passing in a module type is then typed to that module, i.e.:
```py
smartdev.get_module(FanModule)  # type is FanModule
smartdev.get_module("FanModule")  # type is SmartModule
```
Only thing this doesn't do is check that you can't pass an `IotModule`
to a `SmartDevice.get_module()`. However there is a runtime check which
will return null if the passed `ModuleType` is not a subclass of
`SmartModule`.

Many thanks to @cdce8p for helping with this.
2024-05-03 17:01:21 +02:00
..
fixtures Add fixture for waterleak sensor T300 (#897) 2024-05-03 15:24:34 +02:00
smart Make get_module return typed module (#892) 2024-05-03 17:01:21 +02:00
__init__.py mass rename to (python-)kasa (#1) 2019-12-18 09:11:18 +01:00
conftest.py Enable and convert to future annotations (#838) 2024-04-17 15:39:24 +02:00
device_fixtures.py Add fixture for waterleak sensor T300 (#897) 2024-05-03 15:24:34 +02:00
discovery_fixtures.py Implement choice feature type (#880) 2024-04-30 07:56:09 +01:00
fakeprotocol_iot.py Fix incorrect state updates in FakeTestProtocols (#861) 2024-04-24 12:25:16 +01:00
fakeprotocol_smart.py Add LightEffectModule for dynamic light effects on SMART bulbs (#887) 2024-05-02 16:31:12 +02:00
fixtureinfo.py Enable and convert to future annotations (#838) 2024-04-17 15:39:24 +02:00
test_aestransport.py Enable and convert to future annotations (#838) 2024-04-17 15:39:24 +02:00
test_bulb.py Move SmartBulb into SmartDevice (#874) 2024-04-29 18:19:44 +01:00
test_childdevice.py Move SmartBulb into SmartDevice (#874) 2024-04-29 18:19:44 +01:00
test_cli.py Add LightEffectModule for dynamic light effects on SMART bulbs (#887) 2024-05-02 16:31:12 +02:00
test_device_factory.py Be more lax on unknown SMART devices (#863) 2024-04-25 07:36:30 +01:00
test_device_type.py Refactor devices into subpackages and deprecate old names (#716) 2024-02-04 16:20:08 +01:00
test_device.py Update poetry locks and pre-commit hooks (#837) 2024-04-16 20:21:20 +02:00
test_deviceconfig.py Rename and deprecate exception classes (#739) 2024-02-21 16:52:55 +01:00
test_dimmer.py Fix incorrect state updates in FakeTestProtocols (#861) 2024-04-24 12:25:16 +01:00
test_discovery.py Add WallSwitch device type and autogenerate supported devices docs (#758) 2024-03-01 18:32:45 +00:00
test_emeter.py Rename and deprecate exception classes (#739) 2024-02-21 16:52:55 +01:00
test_feature.py Improve feature setter robustness (#870) 2024-05-02 15:32:06 +02:00
test_httpclient.py Rename and deprecate exception classes (#739) 2024-02-21 16:52:55 +01:00
test_iotdevice.py Make get_module return typed module (#892) 2024-05-03 17:01:21 +02:00
test_klapprotocol.py Retry query on 403 after succesful handshake (#785) 2024-02-22 18:02:03 +01:00
test_lightstrip.py Fix incorrect state updates in FakeTestProtocols (#861) 2024-04-24 12:25:16 +01:00
test_plug.py Refactor split smartdevice tests to test_{iot,smart}device (#822) 2024-03-15 15:55:48 +00:00
test_protocol.py Rename and deprecate exception classes (#739) 2024-02-21 16:52:55 +01:00
test_readme_examples.py Refactor test framework (#794) 2024-02-27 18:39:04 +01:00
test_smartdevice.py Make get_module return typed module (#892) 2024-05-03 17:01:21 +02:00
test_smartprotocol.py Handle paging of partial responses of lists like child_device_info (#862) 2024-04-24 20:32:30 +02:00
test_strip.py Refactor split smartdevice tests to test_{iot,smart}device (#822) 2024-03-15 15:55:48 +00:00
test_usage.py Refactor devices into subpackages and deprecate old names (#716) 2024-02-04 16:20:08 +01:00