Commit Graph
125 Commits
Author SHA1 Message Date
J. Nick Koston dbd3147c9b Remove async_late_forward_entry_setups and instead implicitly hold the lock (#119088)
* Refactor config entry forwards to implictly obtain the lock instead of explictly

This is a bit of a tradeoff to not need async_late_forward_entry_setups

The downside is we can no longer detect non-awaited plastform setups
as we will always implicitly obtain the lock instead of explictly.

Note, this PR is incomplete and is only for discussion purposes
at this point

* preen

* cover

* cover

* restore check for non-awaited platform setup

* cleanup

* fix missing word

* make non-awaited test safer
2024-06-12 21:06:11 -04:00
epenet a0abd537c6 Adjust nacl import in tests (#119392) 2024-06-11 18:06:30 +02:00
J. Nick Koston ed0568c655 Ensure config entries are not unloaded while their platforms are setting up (#118767)
* Report non-awaited/non-locked config entry platform forwards

Its currently possible for config entries to be reloaded while their platforms
are being forwarded if platform forwards are not awaited or done after the
config entry is setup since the lock will not be held in this case.

In https://developers.home-assistant.io/blog/2022/07/08/config_entry_forwards
we advised to await platform forwards to ensure this does not happen, however
for sleeping devices and late discovered devices, platform forwards may happen
later.

If config platform forwards are happening during setup, they should be awaited

If config entry platform forwards are not happening during setup, instead
async_late_forward_entry_setups should be used which will hold the lock to
prevent the config entry from being unloaded while its platforms are being
setup

* Report non-awaited/non-locked config entry platform forwards

Its currently possible for config entries to be reloaded while their platforms
are being forwarded if platform forwards are not awaited or done after the
config entry is setup since the lock will not be held in this case.

In https://developers.home-assistant.io/blog/2022/07/08/config_entry_forwards
we advised to await platform forwards to ensure this does not happen, however
for sleeping devices and late discovered devices, platform forwards may happen
later.

If config platform forwards are happening during setup, they should be awaited

If config entry platform forwards are not happening during setup, instead
async_late_forward_entry_setups should be used which will hold the lock to
prevent the config entry from being unloaded while its platforms are being
setup

* run with error on to find them

* cert_exp, hold lock

* cert_exp, hold lock

* shelly async_late_forward_entry_setups

* compact

* compact

* found another

* patch up mobileapp

* patch up hue tests

* patch up smartthings

* fix mqtt

* fix esphome

* zwave_js

* mqtt

* rework

* fixes

* fix mocking

* fix mocking

* do not call async_forward_entry_setup directly

* docstrings

* docstrings

* docstrings

* add comments

* doc strings

* fixed all in core, turn off strict

* coverage

* coverage

* missing

* coverage
2024-06-04 21:34:39 -04:00
epenet 5d594a509c Add type hints for MockAgent in conversation tests (#118701) 2024-06-03 17:44:13 +02:00
epenet 242ee04642 Improve type hints in tests (i-p) (#118380) 2024-05-30 08:47:08 +02:00
epenet 461ac1e0bc Add ClientSessionGenerator type hints in tests (#118377) 2024-05-29 14:49:14 +02:00
epenet d10362e226 Add AiohttpClientMocker type hints in tests (#118373) 2024-05-29 14:38:46 +02:00
Sid c2b3bf3fb9 Enable Ruff RET502 (#115139) 2024-05-21 22:19:33 +02:00
J. Nick Koston 2e8f4743eb Fix flakey mobile app webhook test (#115447) 2024-04-11 12:17:01 -10:00
Paulus Schoutsen d2e4f5f36e Add conversation entity (#114518)
* Default agent as entity

* Migrate constant to point at new value

* Fix tests

* Fix more tests

* Move assist pipeline back to cloud after dependenceis
2024-04-01 21:34:25 -04:00
Paulus Schoutsen f01235ef74 Re-organize conversation integration (#114502)
* Re-organize conversation integration

* Clean up 2 more imports

* Re-export models

* Fix imports

* Uno mas

* Rename agents to models

* Fix cast test that i broke?

* Just blocking till I'm done

* Wrong place
2024-03-31 00:05:25 -04:00
Sid dc557fca1e Refactor conversation mock_agent (#114428)
* Refactor conversation mock_agent

* Address review comments
2024-03-29 14:38:58 +01:00
6bb4e7d62c Bump ruff to 0.3.4 (#112690)
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-26 00:02:16 +01:00
SidandFranck Nijhof 00ec7f11f0 Enable Ruff rule PT007 (#113764)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-03-19 09:01:07 +01:00
Marc Mueller aa16a9d707 Add empty line after module docstring (3) (#112750) 2024-03-08 20:38:34 +01:00
Marc Mueller 1722e23df8 Add empty line after module docstring [tests l-p] (#112710) 2024-03-08 14:55:15 +01:00
Joost Lekkerkerker 92c8c4b1ae Ignore cloudhook already removed in mobile app (#111122) 2024-02-22 11:19:27 +01:00
J. Nick KostonandPaulus Schoutsen 52b5d2e370 Avoid json encoder default fallback when serializing config (#108360)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-01-19 19:22:17 -10:00
Jan-Philipp Benecke fd533e46dd Correct state class in mobile_app tests (#107646)
Correct right state class in `mobile_app` tests
2024-01-09 14:08:58 +01:00
Robert Resch c063bf403a Fix mobile_app cloudhook creation (#107068) 2024-01-05 10:53:59 +01:00
Robert Resch 9508a23f95 Check and register cloud hook if needed for mobile_app (#106461) 2023-12-27 18:01:44 +01:00
Jan-Philipp Benecke 9326ea09a5 Update m* tests to use entity & device registry fixtures (#103980) 2023-11-15 10:33:11 +01:00
Marc Mueller f41e3a2beb Remove duplicate mobile_app client fixture (#100530) 2023-09-18 10:52:43 +02:00
Marc Mueller 544d6b05a5 Replace mock_coro with AsyncMock (#99014)
* Replace mock_coro with AsyncMock

* Remove mock_coro test helper function

* Remove redundant AsyncMock
2023-08-25 22:54:55 +02:00
Ville Skyttä 34b47a2597 Remove unnnecessary pylint configs from components [m-r]* (#98924) 2023-08-24 00:56:50 +02:00
Erik Montnemery 7539cf25be Don't require passing identifiers to DeviceRegistry.async_get_device (#96479)
* Require keyword arguments to DeviceRegistry.async_get_device

* Update tests

* Update tests

* Don't enforce keyword arguments
2023-07-13 13:39:25 -04:00
Paulus Schoutsen d6cd5648b9 Change conversation default agent behavior (#95225)
* Change conversation default agent behavior

* Fix tests
2023-06-26 22:10:17 -04:00
12129e9d21 Update service call return values and error handling (#94657)
* Update return signature of service calls

* Add timeout error handling in websocket api for service calls

* Update recorder tests to remove assertion on service call

* Remove timeout behavior and update callers that depend on it today

* Fix tests

* Add missing else

* await coro directly

* Fix more tests

* Update the intent task to use wait instead of timeout

* Remove script service call limits and limit constants

* Update tests that depend on service call limits

* Use wait instead of wait_for and add test

* Update homeassistant/helpers/intent.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-06-16 07:01:40 -07:00
Erik MontnemeryandMartin Hjelmare ebd9cd096a Keep expose setting in sync for assist (#92158)
* Keep expose setting in sync for assist

* Fix initialization, add test

* Fix tests

* Add AgentManager.async_setup

* Fix typo

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-04-28 15:59:21 +02:00
Paulus Schoutsenandepenet 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
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
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
epenet 6c430e03bc Add type hints to integration tests (part 14) (#88005) 2023-02-15 10:31:43 +01:00
epenet f75ac17554 Add type hints to integration tests (j-m) (#87704) 2023-02-08 19:06:59 +01:00
Paulus SchoutsenandFranck Nijhof e0f8b5bbd1 Fix some mobile app sensor registration/update issues (#86965)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-01-30 20:08:19 +01:00
epenet 30bf0634fe Add per-file-ignore to pylint (#86289) 2023-01-22 17:26:24 +01:00
Paulus Schoutsen 9631146745 Add conversation mobile app webhook (#86239)
* Add conversation mobile app webhook

* Re-instate removed unused import which was used as fixture
2023-01-19 13:59:02 -05:00
Michael 104f74054b Replace the usage of unit constants by enumerations in Tests [m-n] (#85935)
* replace unit conts by enums m-n

* fix mqtt
2023-01-15 15:45:00 +01:00
Paulus Schoutsen 7dff44b3e9 Fix mobile app passing incorrect device ID when scanning tag (#82820) 2022-11-28 08:35:57 -05:00
epenet e84e5f134e Use US_CUSTOMARY_SYSTEM in tests (#80658)
* Use US_CUSTOMARY_SYSTEM in tests

* Don't update test_unit_system
2022-10-20 15:42:23 +02:00
epenet 0ac581a0b1 Cleanup EntityFeature in tests (#78859) 2022-09-21 10:48:55 +02:00
Franck Nijhof 5f0cca9b26 Raise repairs issue if automation calls unknown service (#76949) 2022-08-25 20:56:26 -04:00
Erik Montnemery 0ed265e2be Correct restoring of mobile_app sensors (#76886) 2022-08-17 10:53:05 +02:00
Erik Montnemery 32b1259786 Support multiple trigger instances for a single webhook (#76037) 2022-08-02 08:54:28 +02:00
Paulus Schoutsen 0b09376360 Mobile app to notify when sensor is disabled (#71561)
* Mobile app to notify when sensor is disabled

* Add entity status to get_config

* Allow overriding enabled/disabled
2022-05-17 09:05:49 -07:00
J. Nick Koston e0bf1fba8d Add logbook descriptions for mobile app zone enter and exit (#71749) 2022-05-14 23:05:56 -07:00
Paulus Schoutsen 539ce7ff0e Allow mobile app to disable entities by default (#71562) 2022-05-09 08:05:31 -05:00
Paulus Schoutsen 4a53121b58 Test that mobile app requires empty object for encrypted webhooks without data (#70718) 2022-04-26 19:30:08 +02:00
Erik Montnemery 64381acbaf Mark device actions from hidden or auxiliary entities as secondary (#70278) 2022-04-20 10:48:46 -07:00
Erik Montnemery 5b8cf379a3 Improve mobile_app key handling (#67429) 2022-03-02 07:49:48 -08:00