Commit Graph

15186 Commits (5f25b71df77fd488eed57bf143c3698721c9fc96)

Author SHA1 Message Date
epenet 8c821c8969
Add JSON support to load_fixture (#88076)
* Add JSON support to load_fixture

* More tests

* Remove lru_cache on load_json
2023-02-16 19:40:47 +01:00
Paulus Schoutsen bc2b35765e
Stop processing when we hit bad encryption in mobile app (#88150)
* Stop processing when we hit bad encryption

* Accept webhook payload that is a list

* Rename functions because we import them

* Revert a debug thing

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-02-16 13:05:16 -05:00
Jan Bouwhuis 57738fbb8c
Replace deprecated SSLContext constant PROTOCOL_TLS in mqtt (#88214)
Replace deprecated SSLContext constants
2023-02-16 13:01:28 -05:00
J. Nick Koston c79157208b
Add python 3.11 to the CI (#88038)
* Remove profiler.memory service

guppy3 is not python3.11 compat
https://github.com/zhuyifei1999/guppy3/issues/41

This service will return if and when guppy3 becomes
python3.11 compat

* squash

* temp remove

* temp dump tests

* temp dump tests

* drop a few more to get a run

* drop a few more to get a run

* Account for changed python3.11 enum.IntFlag behavior in zha

There may be additional changes needed, but I could only
see what needed to be updated based on the tests

* merge

* restore

* restore

* legacy value

* tweak a bit for the python 3.11 timings

* block cchardet

* conditional

* adjust est

* test

* not yet

* tweak

* give a little leeway for timing

* Fix otbr tests

* Increase database test timeout

It looks like we need a little more time to run
with the addiitonal tests in #87019

* Increase database test timeout

It looks like we need a little more time to run
with the addiitonal tests in #87019

* Fix aprs tests with python 3.11

* merge fix

* hints

* Update homeassistant/package_constraints.txt

* Update script/gen_requirements_all.py

* Constrain uamqp for Python 3.10 only

* Bump vulcan-api to 2.3.0

see https://github.com/kapi2289/vulcan-api/pull/126
see https://github.com/home-assistant/core/pull/88038
see https://github.com/home-assistant/docker/pull/260

* add ban

* Bump python-matter-server to 2.1.1

* revert

* Update tests/asyncio_legacy.py

---------

Co-authored-by: Erik <erik@montnemery.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
2023-02-16 12:38:32 -05:00
J. Nick Koston d2277fa6db
Fix restore of MQTT subscriptions from reload (#88220) 2023-02-16 11:14:26 -06:00
epenet 88cfbf6a34
Add type hints to integration tests (part 22) (#88234) 2023-02-16 14:08:03 +01:00
epenet ba23816a0c
Inverse json import logic (#88099)
* Fix helpers and util

* Adjust components

* Move back errors

* Add report

* mypy

* mypy

* Assert deprecation messages

* Move test_json_loads_object

* Adjust tests

* Fix rebase

* Adjust pylint plugin

* Fix plugin

* Adjust references

* Adjust backup tests
2023-02-16 11:37:57 +01:00
epenet dab8557951
Add type hints to integration tests (part 21) (#88233) 2023-02-16 11:15:26 +01:00
Brandon Rothweiler 0748e12341
Fix capitalization of OwnTone integration (#88219) 2023-02-16 10:16:32 +01:00
J. Nick Koston c83ea297b5
Refactor zeroconf task handling (#88204)
* Refactor zeroconf task handling

- Avoid the need to create tasks for most callbacks
- Fixes the untracked task that could get unexpectedly GCed

* be consistant

* be consistant

* fix zeroconf tests

* runtime

* Revert "runtime"

This reverts commit 19e6b61837.

* precalc

* refactor

* tweak

* update tests
2023-02-15 21:44:11 -05:00
J. Nick Koston c0e22be7a8
Fix allowing identical flows to be created before startup (#88213)
The check for identical flows only worked after
the start event. We now check against pending
flows as well

If startup took a while we could end up
with quite the thundering herd
2023-02-15 21:36:00 -05:00
Franck Nijhof d3ed8de232
Update Ruff to v0.0.247 (#88210)
* Update Ruff to v0.0.247

* Fix new found violations
2023-02-15 16:46:03 -05:00
Marcel van der Veldt dfe0ededa0
Bump python-matter-server to 2.1.0 (#88192)
* Bump python-matter-server to 2.1.0

* Fix tests

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-02-15 13:23:03 -05:00
J. Nick Koston c8b827b46b
Fix aprs tests with python 3.11 (#88189)
* Fix aprs tests with python 3.11

* hints
2023-02-15 13:03:48 -05:00
Erik Montnemery 80e2f96097
Add WS command thread/delete_dataset (#88077)
* Add WS command thread/delete_dataset

* Return not_allowed when trying to delete the preferred dataset
2023-02-15 12:55:10 -05:00
J. Nick Koston 4221433ca6
Account for changed python3.11 enum.IntFlag 0 behavior in zha (#88144) 2023-02-15 11:40:48 -06:00
epenet 80ee196fd8
Add type hints to integration tests (part 19) (#88178) 2023-02-15 18:07:40 +01:00
Jc2k f5a05c1bd2
Support HomeKit Controller Thread Provisioning (#87809) 2023-02-15 16:41:07 +00:00
Jan Bouwhuis 03e9dff327
Allow resetting MQTT climate attributes and ignore empty values (#87936)
Allow reseting MQTT climate attributes
2023-02-15 16:31:49 +01:00
J. Nick Koston 61539686a4
Disable profiler.memory service with python 3.11 (#88136) 2023-02-15 16:20:47 +01:00
Erik Montnemery 6254200b37
Fix otbr tests (#88184) 2023-02-15 16:19:46 +01:00
mkmer 2af4d2152b
Honeywell disable detergent level by default (#88040)
* Disable fill by default

* Fix tests

* use TANK_FILL.get

* Remove None from attribute get
add reload to sensor test

* Typing
fix iteration error
2023-02-15 16:01:20 +01:00
Gertjan 66ba0cb1d3
Fixed float number validation in sensor component (#88074) 2023-02-15 15:53:44 +01:00
epenet 3a9adacdde
Add type hints to integration tests (part 20) (#88179) 2023-02-15 15:23:34 +01:00
Erik Montnemery 8613d60c5e
Add WS command for discovering Thread routers (#88021)
* Add WS command for discovering Thread routers

* Fix type annotations

* Mock zeroconf in tests

* Key discovery by external MAC address

* Add tests

* Include hostname in data, allow missing fields

* Fix typo

* Include server instead of hostname
2023-02-15 15:15:29 +01:00
epenet c7fc90f8a0
Adjust imports in rflink test_init (#88177) 2023-02-15 15:11:22 +01:00
Franck Nijhof f67ebcade1
Enable Ruff SIM201 (#88171) 2023-02-15 14:43:02 +01:00
Franck Nijhof ed79265843
Enable Ruff PT006 (#88165)
* Enable Ruff PT006

* Adjust existing cases

* Fix tests

* Remove unneeded parentheses
2023-02-15 14:09:50 +01:00
J. Nick Koston 6f38bc274a
Fix netatmo with python 3.11 (#88093) 2023-02-15 14:02:33 +01:00
epenet b21bf8763e
Fix mobile app regression accepting sensor states (#88164)
* Fix mobile app regression accepting sensor states

* Adjust tests
2023-02-15 07:17:19 -05:00
Franck Nijhof 9030ca05b1
Enable Ruff SIM118 (#87772) 2023-02-15 12:39:12 +01:00
epenet 2cdc741900
Add type hints to integration tests (part 17) (#88163) 2023-02-15 11:14:04 +01:00
Mike Heath 04e9c7748f
Support Fully Kiosk Browser device discovery via MQTT (#88109)
Support FKB device discovery via MQTT
2023-02-15 11:11:04 +01:00
epenet 88444b2e0c
Add type hints to integration tests (part 16) (#88008) 2023-02-15 10:50:02 +01:00
epenet 6c430e03bc
Add type hints to integration tests (part 14) (#88005) 2023-02-15 10:31:43 +01:00
Thomas Dietrich a0e0feb444
Statistics component fix device_class for incremental source sensors (#88096)
* Return None device_class for incremental source sensors

* Ignore linting error

* Fix ignore linting error

* Fix ignore linting error

* Fix ignore linting error

* Catch potential parsing error with enum
2023-02-15 10:22:09 +01:00
Maciej Bieniek 95bb019f71
Do not reload Shelly TRV entry when not needed (#88037)
* Do not reload the entry when the target temperature changes

* Do not reload the entry when the mode changes

* Increase test coverage

* Increase test coverage
2023-02-15 10:21:53 +01:00
Maciej Bieniek cd4ce86f07
Add support for `triple_push` event for Shelly gen2 devices (#88081)
* Add support for triple_push event

* Sort

* Fix tests
2023-02-15 10:20:27 +01:00
epenet 50cbabb2d8
Add type hints to integration tests (part 15) (#88006) 2023-02-15 10:00:49 +01:00
Jan Bouwhuis 6c23d6abfe
Fix doc string in mqtt test (#88138)
Fix docstr
2023-02-15 05:56:03 +01:00
Brandon Rothweiler 7cf5fd5952
Fix typo in OpenAI prompt (#88137) 2023-02-14 20:33:58 -05:00
J. Nick Koston 0c35c6a313
Fix enum try_parse test for python3.11 (#88131) 2023-02-14 15:29:44 -06:00
J. Nick Koston 44e8e808a1
Fix apprise tests for python 3.11 (#88126) 2023-02-14 15:25:25 -05:00
J. Nick Koston aaeb909148
Fix wemo tests with py3.11 (#88123) 2023-02-14 13:58:57 -06:00
J. Nick Koston 4d90d3cd91
Fix vera tests with python3.11 (#88124) 2023-02-14 13:58:44 -06:00
J. Nick Koston e7d5943c90
Fix zwave_me tests with python 3.11 (#88122) 2023-02-14 13:58:29 -06:00
Aaron Bach 6bb7a7225d
Revert "Add a calendar entity to Ridwell (#86117)" (#88106)
This reverts commit 16a5275461.
2023-02-14 10:23:32 -07:00
J. Nick Koston f237bb14ca
Add strict typing to yalexs_ble (#88086)
* Add strict typing to yalexs_ble

* Add strict typing to yalexs_ble

* Add strict typing to yalexs_ble
2023-02-14 11:38:51 -05:00
Teemu R 5335dfbc67
Prefer effect over other light settings for tplink (#85642) 2023-02-14 10:29:11 -06:00
J. Nick Koston c54500cb1f
Fix invalid spec in mqtt tests for py3.11 (#88092)
Fix invalid spec in mqtt tests

unittest.mock.InvalidSpecError: Cannot spec a Mock object.
2023-02-14 11:28:46 -05:00
Aaron Bach 16a5275461
Add a calendar entity to Ridwell (#86117) 2023-02-14 06:58:41 -07:00
Martin Hjelmare e1a5d5a749
Refactor tradfri sensor tests (#88026) 2023-02-14 13:35:27 +01:00
Matthias Alphart d7861e79c5
Update xknx to 2.5.0 (#88069) 2023-02-14 12:44:43 +01:00
Paulus Schoutsen fa5c60c9ee
Handle device reg fields not being valid data in openai conversion (#88047)
Handle device reg fields not being valid data
2023-02-14 11:45:27 +01:00
Paulus Schoutsen d54f59478f
Keep task references while running (#87970)
* Keep task references while running

* Update pilight tests pointing at correct logger call

* Fix graphite tests

* Fix profiler tests

* More graphite test fixes

* Remove extra sleep

* Fix tests

* Shutdown background tasks as part of stage 1

* Remove unnecessary sleep in test

* Remove unused method on mock hass

* Skip on cancelled too

* Remove background tasks

* Test trigger variables without actually sleeping

* Fix graphite

* One more graphite grrrrrrr
2023-02-13 23:16:59 -05:00
J. Nick Koston e41af8928b
Restore original aiohttp cancelation behavior (#88046) 2023-02-13 22:00:36 -06:00
dcmeglio 3d9d79684d
Add support for telnet connections for Denonavr integration (#85980)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-02-13 18:36:09 -06:00
epenet efef915fc7
Add mariadb 10.3.32 to database tests (#87741)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-02-13 16:28:39 -06:00
Erik Montnemery 4ca0a24f87
Increase test scope of MariaDB + PostgreSQL tests (#87019)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-02-13 15:58:13 -06:00
Martin Hjelmare ab2ab1573e
Refactor tradfri diagnostics tests (#88017) 2023-02-13 18:39:48 +01:00
Martin Hjelmare 8993a36e27
Refactor tradfri fan tests (#87999) 2023-02-13 15:40:21 +01:00
J. Nick Koston 03eea7bd3f
Avoid subprocess memory copy when c library supports posix_spawn (#87958)
* use posix spawn on alpine

* Avoid subprocess memory copy when c library supports posix_spawn

By default python 3.10 will use the fork() which has to
copy all the memory of the parent process (in our case
this can be huge since Home Assistant core can use
hundreds of megabytes of RAM). By using posix_spawn
this is avoided.

In python 3.11 vfork will also be available
https://github.com/python/cpython/issues/80004#issuecomment-1093810689
https://github.com/python/cpython/pull/11671 but we won't
always be able to use it and posix_spawn is considered safer
https://bugzilla.kernel.org/show_bug.cgi?id=215813#c14

The subprocess library doesn't know about musl though
even though it supports posix_spawn https://git.musl-libc.org/cgit/musl/log/src/process/posix_spawn.c
so we have to teach it since it only has checks for glibc
1b736838e6/Lib/subprocess.py (L745)

The constant is documented as being able to be flipped here:
https://docs.python.org/3/library/subprocess.html#disabling-use-of-vfork-or-posix-spawn

* Avoid subprocess memory copy when c library supports posix_spawn

By default python 3.10 will use the fork() which has to
copy memory of the parent process (in our case
this can be huge since Home Assistant core can use
hundreds of megabytes of RAM). By using posix_spawn
this is avoided and subprocess creation does not
get discernibly slow the larger the Home Assistant
python process grows.

In python 3.11 vfork will also be available
https://github.com/python/cpython/issues/80004#issuecomment-1093810689
https://github.com/python/cpython/pull/11671 but we won't
always be able to use it and posix_spawn is considered safer
https://bugzilla.kernel.org/show_bug.cgi?id=215813#c14

The subprocess library doesn't know about musl though
even though it supports posix_spawn https://git.musl-libc.org/cgit/musl/log/src/process/posix_spawn.c
so we have to teach it since it only has checks for glibc
1b736838e6/Lib/subprocess.py (L745)

The constant is documented as being able to be flipped here:
https://docs.python.org/3/library/subprocess.html#disabling-use-of-vfork-or-posix-spawn

* missed some

* adjust more tests

* coverage
2023-02-13 09:02:51 -05:00
epenet ea11a30a35
Add type hints to integration tests (part 13) (#87998) 2023-02-13 14:38:37 +01:00
Paulus Schoutsen c557cd2b1e
Make all history stats tests async (#87973) 2023-02-13 14:34:28 +01:00
epenet 1e352b60df
Add type hints to integration tests (part 11) (#87996) 2023-02-13 14:22:49 +01:00
Erik Montnemery 8f2a764a43
Adjust suggested_display_precision according to unit conversion (#87614) 2023-02-13 13:55:12 +01:00
epenet ea29cdfe83
Add type hints to integration tests (part 12) (#87997) 2023-02-13 13:03:51 +01:00
G Johansson 896dd1a36b
Change name to entity_id Text platform error messages (#87963) 2023-02-13 12:51:38 +01:00
Jan Bouwhuis 950ee34514
Correct typing on hass_storage fixure (#87986)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-02-13 12:12:34 +01:00
Franck Nijhof f1daeabff0
Add homeassistant.reload_all service (#87769) 2023-02-13 12:09:29 +01:00
epenet 03710e58b5
Add type hints to integration tests (part 9) (#87983) 2023-02-13 12:06:51 +01:00
Franck Nijhof 6359775cfc
Add more entities for Elgato Key Light Mini (#87793)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-02-13 11:54:50 +01:00
epenet 89e4ee5320
Add type hints to integration tests (part 8) (#87982) 2023-02-13 11:13:48 +01:00
epenet 9404a107b2
Add type hints to integration tests (part 10) (#87985) 2023-02-13 10:25:26 +01:00
Erik Montnemery 3f910b49ae
Fix sensor unit conversion (#87978) 2023-02-13 10:08:07 +01:00
epenet b68f502769
Add type hints to integration tests (part 7) (#87980) 2023-02-13 09:53:09 +01:00
epenet b9beed4624
Add type hints to integration tests (part 6) (#87979) 2023-02-13 09:45:11 +01:00
Joakim Sørensen e842f90767
Add recorder engine name and version to analytics (#87784)
* Add recorder to analytics

* Add test

* Add recorder to after_dependencies

* Add version

* dialect can not be None
2023-02-13 09:18:12 +01:00
G Johansson 8c00f435a6
Change name to entity_id update platform error messages (#87960) 2023-02-12 22:18:09 +01:00
J. Nick Koston 7b9293941e
The recorder/statistic(s)_during_period websocket API now require the statistic_id(s) field (#87937) 2023-02-12 14:51:10 -06:00
rappenze 5f4a2a713c
Remove deprecated fibaro yaml config (#87939) 2023-02-12 21:50:50 +01:00
Ernst Klamer 18d3e4dca8
Fix kegtron state class for volume sensors (#87950) 2023-02-12 21:22:21 +01:00
epenet 728f62b1ec
Add type hints to integration tests (part 5) (#87850) 2023-02-12 19:39:48 +01:00
Klaas Schoute 60bcbd0473
Bump gridnet to v4.2.0 (#87903) 2023-02-12 18:53:05 +01:00
Allen Porter 4d186366bd
Improve Google Calendar config flow error message when API disabled (#87889) 2023-02-12 18:28:44 +01:00
Erik Montnemery 4db40810dd
Add support for dormakaba dKey locks (#87501)
* Add support for dormakaba dKey locks

* Pylint

* Address review comments

* Add test for already configured entry

* Add user flow

* Address review comments

* Simplify config flow

* Add tests

* Sort manifest

* Remove useless _abort_if_unique_id_configured

* Remove config entry update listener

* Simplify user flow

* Remove startup event

* Revert "Simplify user flow"

This reverts commit 0ef9d1c6bb.
2023-02-12 13:46:31 +01:00
J. Nick Koston 85649ec589
Reduce overhead to see if an entity is recorded (#87912)
A significant chunk of list_statistic_ids was checking if the entity
was recorded because it had to get the recorder instance over and
over
2023-02-11 23:21:16 -05:00
rappenze e1340e6ed4
Replace fiblary3 with pyfibaro library (#83500)
* Replace fiblary3 with pyfibaro library

* Fix some missing replacements for pyfibaro library

* Remove debug code which was committed accidentially

* Use fibaro_parent_id in another place

* Fix some bugs

* Move more code to the library

* Move has_unit check to correct place
2023-02-11 22:13:12 +01:00
J. Nick Koston 34e2751f14
Retrigger Bluetooth discovery when calling async_rediscover_address (#87884)
* Retrigger Bluetooth discovery when calling async_rediscover_address

* Retrigger Bluetooth discovery when calling async_rediscover_address

* tweak
2023-02-11 16:59:51 +01:00
G Johansson 7aa79415c1
Fix unbound variable in Group sensor (#87878)
* group bound last

* Add test
2023-02-11 16:27:22 +01:00
epenet b7b82b1e3f
Add more type hints to conftest.py (#87842)
* Add more type hints in conftest.py

* Adjust stop_hass

* Adjust mock_integration_frame

* Adjust pylint plugin
2023-02-11 13:48:53 +01:00
epenet 9f688a564f
Add type hints to integration tests (part 4) (#87848) 2023-02-11 08:26:13 +01:00
Jan Bouwhuis 41a92a872f
Add missed type hint on MQTT device tracker test (#87847) 2023-02-10 22:42:56 +01:00
Jan Bouwhuis 0bf4896c7f
Add type hints to MQTT init tests (#87402)
* Add hass type hint and `None` return type

* Add type hints on tmp_path

* Add registry hints

* Add caplog and hass_ws_client type hints

* Add type hints for MqttMockHAClientGenerator

* Add type hints MqttMockPahoClient

* Hints on fixtures `calls` and `record_calls`

* Other fixture type hints tweaks

* Add hints for mock_usename_password_set

* Update tests/components/mqtt/test_init.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* correct domain

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-02-10 18:38:37 +01:00
J. Nick Koston c35661947a
Optimize fetching statistics by avoiding timestamp conversions (#87845)
* Optimize fetching statistics by avoiding timestamp conversions

* remove accidential unrelated change

* fix test

* recreate so we handle timezone changes
2023-02-10 11:26:46 -05:00
epenet 6a1cd75a67
Add MockHAClientWebSocket test helper (#87832)
* Add MockHAClientWebSocket test helper

* Add sample use

* Add missing type hint
2023-02-10 10:23:26 -05:00
epenet 0cf5e9fb4a
Add type hints to integration tests (part 2) (#87789)
* Add type hints to integration tests (part 2)

* typo

* Improve analytics

* Improve automation

* Imrpove bluetooth
2023-02-10 16:05:26 +01:00
epenet fa7acb4f0d
Add type hints to integration tests (part 3) (#87844) 2023-02-10 16:05:01 +01:00
epenet 22bfb99db4
Add type hints to requests_mock (#87757) 2023-02-10 11:44:09 +01:00
epenet fac746c974
Improve recorder type hints in tests (#87826)
* Improve recorder type hints in tests

* Add comment

* Adjust comment
2023-02-10 11:11:39 +01:00