Steven B
39fc21a124
Use freezegun for testing aes http client delays ( #954 )
2024-06-05 18:13:10 +01:00
Steven B
91de5e20ba
Fix P100 errors on multi-requests ( #930 )
...
Fixes an issue reported by @bdraco with the P100 not working in the
latest branch:
`[Errno None] Can not write request body for HOST_REDACTED,
ClientOSError(None, 'Can not write request body for
URL_REDACTED'))`
Issue caused by the number of multi requests going above the default
batch of 5 and the P100 not being able to handle the second multi
request happening immediately as it closes the connection after each
query (See https://github.com/python-kasa/python-kasa/pull/690 for
similar issue). This introduces a small wait time on concurrent requests
once the device has raised a ClientOSError.
2024-06-04 19:49:01 +02:00
Steven B
203bd79253
Enable and convert to future annotations ( #838 )
2024-04-17 15:39:24 +02:00
Steven B
7507837734
Fix slow aestransport and cli tests ( #816 )
2024-03-11 10:17:12 +00:00
Steven B
8c39e81a40
Rename and deprecate exception classes ( #739 )
...
# Public #
SmartDeviceException -> KasaException
UnsupportedDeviceException(SmartDeviceException) -> UnsupportedDeviceError(KasaException)
TimeoutException(SmartDeviceException, asyncio.TimeoutError) -> TimeoutError(KasaException, asyncio.TimeoutError)
Add new exception for error codes -> DeviceError(KasaException)
AuthenticationException(SmartDeviceException) -> AuthenticationError(DeviceError)
# Internal #
RetryableException(SmartDeviceException) -> _RetryableError(DeviceError)
ConnectionException(SmartDeviceException) -> _ConnectionError(KasaException)
2024-02-21 16:52:55 +01:00
Steven B
13d8d94bd5
Fix for P100 on fw 1.1.3 login_version none ( #751 )
...
* Fix for P100 on fw 1.1.3 login_version none
* Fix coverage
* Add delay before trying default login
* Move devtools and fixture out
* Change logging string
Co-authored-by: Teemu R. <tpr@iki.fi>
* Fix test
---------
Co-authored-by: Teemu R. <tpr@iki.fi>
2024-02-14 19:13:28 +00:00
Teemu R
fae071f0df
Fix port-override for aes&klap transports ( #734 )
...
* Fix port-override for aes&klap transports
* Add tests for port override
2024-02-03 15:28:20 +01:00
Teemu R
55525fc58b
Unignore F401 for tests ( #724 )
...
* Unignore F401 for tests
* Fix linting
2024-01-30 00:15:58 +01:00
J. Nick Koston
b479b6d84d
Avoid rebuilding urls for every request ( #715 )
...
* Avoid rebuilding urls for every request
* more fixes
* more fixes
* make mypy happy
* reduce
* tweak
* fix tests
* fix tests
* tweak
* tweak
* lint
* fix type
2024-01-29 15:26:00 +00:00
J. Nick Koston
3df837cc82
Ensure login token is only sent if aes state is ESTABLISHED ( #702 )
2024-01-24 09:43:42 -10:00
J. Nick Koston
24c645746e
Refactor aestransport to use a state enum ( #691 )
2024-01-23 22:50:25 -10:00
Steven B
1788c50146
Update transport close/reset behaviour ( #689 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-01-23 12:15:18 -10:00
Steven B
f045696ebe
Fix P100 error getting conn closed when trying default login after login failure ( #690 )
2024-01-23 11:51:07 -10:00
Steven B
e233e377ad
Generate AES KeyPair lazily ( #687 )
...
* Generate AES KeyPair lazily
* Fix coverage
* Update post-review
* Fix pragma
* Make json dumps consistent between python and orjson
* Add comment
* Add comments re json parameter in HttpClient
2024-01-23 15:29:27 +00:00
Steven B
718983c401
Try default tapo credentials for klap and aes ( #685 )
...
* Try default tapo credentials for klap and aes
* Add tests
2024-01-23 14:44:32 +00:00
Steven B
642e9a1f5b
Migrate http client to use aiohttp instead of httpx ( #643 )
2024-01-18 07:32:26 -10:00
sdb9696
f6fd898faf
Add DeviceConfig to allow specifying configuration parameters ( #569 )
...
* Add DeviceConfig handling
* Update post review
* Further update post latest review
* Update following latest review
* Update docstrings and docs
2023-12-29 20:17:15 +01:00
sdb9696
6819c746d7
Enable multiple requests in smartprotocol ( #584 )
...
* Enable multiple requests in smartprotocol
* Update following review
* Remove error_code parameter in exceptions
2023-12-20 18:08:04 +01:00
sdb9696
20ea6700a5
Do login entirely within AesTransport ( #580 )
...
* Do login entirely within AesTransport
* Remove login and handshake attributes from BaseTransport
* Add AesTransport tests
* Synchronise transport and protocol __init__ signatures and rename internal variables
* Update after review
2023-12-19 15:11:59 +01:00