Commit Graph
382 Commits
Author SHA1 Message Date
Marc MuellerandGitHub 1120745d4e Update SignalType imports (#114287) 2024-03-27 19:41:11 +01:00
Jan-Philipp BeneckeandGitHub 5c97049f2e Do not override state property in MockEntity (#114231)
Do not override state in `MockEntity`
2024-03-27 11:36:00 +01:00
Jan-Philipp BeneckeandGitHub e80d73783c Do not late import config_entry in setup_test_component_platform test helper (#114260) 2024-03-26 21:54:09 +01:00
Marc MuellerandGitHub eb81a4204e Allow string formatting for dispatcher SignalType (#114174) 2024-03-26 10:38:29 +01:00
J. Nick KostonandGitHub cabc4f797a Preload storage for integrations we know we are going to setup (#114192) 2024-03-25 15:49:54 -10: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
Jan-Philipp BeneckeandGitHub 9b682388f5 Add generic test component platform setup function (#114016)
* Add generic entity platform setup fixture

* rename fixture

* No need for passing hass

* Make function instead of fixture

* Improve typing

* Use Sequence instead

* Migrate flux to use the new helper

* Use list instead

* Use Sequence instead
2024-03-25 21:36:17 +01:00
0e2775667d Add category registry (#110897)
* Add category registry

* Add entity registry support

* Update homeassistant/components/config/entity_registry.py

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

* Use ulid instead

* Add tests for adding same name in different scopes

* Handle keyerror on update

* Lookup tweak

* Omit categories from entity registry snapshots

* Use base registry

* Update snapshots

* Update snapshots

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-15 13:25:16 +01:00
J. Nick KostonandGitHub 28836be3eb Construct storage data in the executor to avoid blocking the event loop (#113465)
Construct storage data in the executor

Constructing storage data can be expensive for large files and can block the event
loop. While ideally we optimize the construction of the data, there are some places
we cannot make it any faster. To avoid blocking the loop, the construction of
the data is now done in the executor by running the data_func in the executor.

2024-03-14 11:28:20.178 WARNING (MainThread) [asyncio] Executing <TimerHandle cancelled when=2319925.760294916 Store._async_schedule_callback_delayed_write() created at /Users/bdraco/home-assistant/homeassistant/helpers/storage.py:328> took 0.159 seconds

There is some risk that the data_func is not thread-safe and needs to be run in
the event loop, but I could not find any cases in our existing code where it
would be a problem
2024-03-14 19:53:11 -04:00
Jan BouwhuisandGitHub 3ed7a7166d Revert "Remove unused test helper mock_area_registry" (#113453) 2024-03-14 22:11:44 +01:00
J. Nick KostonandGitHub 1cceaaf193 Small improvement to test run time (#113175) 2024-03-12 23:01:39 +01:00
J. Nick KostonandGitHub 3387892f59 Schedule tasks eagerly when called from hass.add_job (#113014) 2024-03-10 21:19:49 -10:00
Marc MuellerandGitHub cb8c14496c Use more f-strings [ruff] (#112695) 2024-03-08 18:44:42 +01:00
Marc MuellerandGitHub 19ab3d6daf Add empty line after module docstring [helpers + other] (#112707) 2024-03-08 10:36:11 -05:00
J. Nick KostonandGitHub 1fb9cfe37e Speed up the frame helper (#112562) 2024-03-06 20:54:09 -10:00
1e173e82d0 Add support for preloading platforms in the loader (#112282)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-04 16:33:12 -10:00
Erik MontnemeryandGitHub c58828aac0 Remove unused test helper mock_area_registry (#112172) 2024-03-04 06:09:27 -05:00
J. Nick KostonandGitHub 9af12a0639 Avoid calling async_get_component twice for each component being setup (#112096)
We already have the component so we can pass it to
async_process_component_config to avoid having to
look it up again
2024-03-03 12:48:07 -05:00
J. Nick KostonandGitHub 67e356904b Add support for eager tasks (#111425)
* Add support for eager tasks

python 3.12 supports eager tasks

reading:
https://docs.python.org/3/library/asyncio-task.html#eager-task-factory
https://github.com/python/cpython/issues/97696

There are lots of places were we are unlikely to suspend, but we might
suspend so creating a task makes sense

* reduce

* revert entity

* revert

* coverage

* coverage

* coverage

* coverage

* fix test
2024-02-26 11:36:46 -05:00
J. Nick KostonandGitHub 4bddf32cc4 Avoid the final write of every registry at the end of each test (#111053) 2024-02-21 06:01:19 -06:00
J. Nick KostonandGitHub dc4008c518 Avoid creating tasks to shutdown entity platforms (#111026)
* Avoid creating tasks to shutdown entity platforms

Nothing needed to be awaited here

* fix mocking

* missed one test
2024-02-20 21:10:25 -05:00
J. Nick KostonandGitHub 98d5f2fc01 Reduce registry overhead in tests (#110955)
* Avoid scheduling registry loads as tasks in tests

Since we patch out async_load in Store, these will not yield
to the event loop so it makes sense to await them instead
of creating tasks

This reduced my local test run times ~2.5% on average

* mock out save as well so we do not schedule tasks to save empty data

* tweaks

* fix lingering files

* another one

* too much for one PR, reduce

* fix targets
2024-02-20 21:01:50 -05:00
Franck NijhofandGitHub e0a9dcd996 Add label registry (#110821) 2024-02-19 11:59:08 +01:00
J. Nick KostonandGitHub 16653ff5d0 Group loading of translations for integrations to reduce executor jobs at startup (#110674) 2024-02-17 21:08:55 -06:00
4570eed6f6 Add floor registry (#110741)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-02-17 21:21:15 +01:00
Marc MuellerandGitHub 2ef2172b01 Convert test helpers to get hass instance to contextmanagers (#109990)
* Convert get_test_home_assistant helper to contextmanager

* Convert async_test_home_assistant helper to contextmanager

* Move timezone reset to async_test_home_assistant helper
2024-02-11 21:23:51 +01:00
a2f4e99994 Add state_translated function to jinja templates (#96906)
* Add state_translated jinja function

* Add tests for load_state_translations_to_cache and get_cached_translations

* Cleanup state_translated template

* Add tests for state_translated jinja function

* Apply black formatting

* Improve code quality

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Apply suggestions from code review

* Prevent invalid components from loading translations

* Refactor loading translations to cache

* Adjust code issues

* Update homeassistant/helpers/translation.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Refactor listeners that trigger translation loading

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Apply suggestions from code review

* Adjust invalid function calls, fix code styling

* Adjust code quality

* Extract async_translate_state function

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Apply suggestions from code review

* Fix tests

* Fix tests

---------

Co-authored-by: Piotr Machowski <PiotrMachowski@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-02-10 10:47:56 +01:00
J. Nick KostonandGitHub f6d4617c7a Avoid directly changing config entry state in tests (part 2) (#110115)
followup to #110048 for more places
2024-02-10 07:20:15 +01:00
J. Nick KostonandGitHub 02efe41564 Avoid directly changing config entry state in tests (#110048) 2024-02-08 16:31:17 -06:00
J. Nick KostonandGitHub c399cab427 Small speed up to checking core state (#107845) 2024-01-18 08:41:32 -10:00
J. Nick KostonandGitHub 3649cb96de Refactor config entry storage and index (#107590) 2024-01-13 10:34:15 -10:00
J. Nick KostonandGitHub b1d0c6a4f1 Refactor User attribute caching to be safer and more efficient (#96723)
* Cache construction of is_admin

This has to be checked for a lot of api calls and the websocket
every time the call is made

* Cache construction of is_admin

This has to be checked for a lot of api calls and the websocket
every time the call is made

* Cache construction of is_admin

This has to be checked for a lot of api calls and the websocket
every time the call is made

* modernize

* coverage

* coverage

* verify caching

* verify caching

* fix type

* fix mocking
2024-01-13 15:10:50 -05:00
Jan BouwhuisandGitHub 20610645fb Pop the mocked config flow, restore the original with mock_config_flow (#107567)
Pop the mocked config flow, restore the original if it existed
2024-01-08 19:01:43 +01:00
J. Nick KostonandGitHub d04e2d56da Add support for JSON fragments (#107213) 2024-01-07 17:36:31 -10:00
Jan BouwhuisandGitHub d6aaaf1f1a Only mock config_entries.HANDLERS for the current test in mock_config_flow (#107357) 2024-01-06 11:46:12 +01:00
Erik MontnemeryandGitHub c805ea7b4f Include deprecated constants in wildcard imports (#107114) 2024-01-05 11:46:45 +01:00
Ville SkyttäandGitHub 24b1e01d71 Update Ruff to 0.1.8, avoid linter/formatter conflicts (#106080)
* Disable Ruff rules that may conflict with the formatter

* Upgrade Ruff to 0.1.8

- https://github.com/astral-sh/ruff/releases/tag/v0.1.7
- https://github.com/astral-sh/ruff/releases/tag/v0.1.8

* Format with Ruff 0.1.8
2023-12-20 23:55:09 +01:00
Robert ReschandGitHub db985925c4 Deprecate deprecated automation constants (#106067) 2023-12-19 19:22:13 +01:00
Robert ReschandGitHub 0e0fd39603 Add dir_with_deprecated_constants function to deprecation helper (#106059) 2023-12-19 16:37:21 +01:00
Erik MontnemeryandGitHub 6908497c3d Add minor version to config entries (#105479) 2023-12-12 08:44:35 +01:00
1edfaed7be Improve raise contains mocks (#105078)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-12-05 19:14:35 +01:00
Jan BouwhuisandGitHub efd330f182 Send localization info on websocket_api script errors (#104638)
* Send localization info on script errors

* Use connection exception hander

* Keep HomeAssistantError is unknown_error

* Move specific exception handling
2023-11-29 10:47:23 +01:00
706add4a57 Switch formatting from black to ruff-format (#102893)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:38:59 +01:00
Jan BouwhuisandGitHub 19040becd3 Fix hassio mqtt discovery CI test (#104463)
* Fix hassio mqtt discovery CI test

* Avoid mqtt set up before mocking the flow

* Fix mock
2023-11-24 21:54:53 +01:00
af71c2bb45 Raise and suppress stack trace when reloading yaml fails (#102410)
* Allow async_integration_yaml_config to raise

* Docstr - split check

* Implement as wrapper, return dataclass

* Fix setup error handling

* Fix reload test mock

* Move log_messages to error handler

* Remove unreachable code

* Remove config test helper

* Refactor and ensure notifications during setup

* Remove redundat error, adjust tests notifications

* Fix patch

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Follow up comments

* Add call_back decorator

* Split long lines

* Update exception abbreviations

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-11-24 17:34:45 +01:00
Erik MontnemeryandGitHub 4536fb3541 Remove mock_entity_platform test helper (#104073) 2023-11-16 16:55:08 +01:00
Raman GuptaandGitHub 618b666126 Add support for responses to call_service WS cmd (#98610)
* Add support for responses to call_service WS cmd

* Revert ServiceNotFound removal and add a parameter for return_response

* fix type

* fix tests

* remove exception handling that was added

* Revert unnecessary modifications

* Use kwargs
2023-11-10 21:44:43 +01:00
Joost LekkerkerkerandGitHub 8b5bfd8cee Add test helper for cloud status updates (#100993)
* Add helper for cloud status updates

* Move import
2023-09-27 17:08:51 +02:00
J. Nick KostonandGitHub a03ad87cfb Avoid ConfigEntry lookups in hass.config_entries.async_entries for domain index (#100598) 2023-09-20 18:43:15 +02:00
Erik MontnemeryandGitHub 9dac6a2948 Use loop.time in DataUpdateCoordinator (#98937) 2023-08-28 10:16:34 -05:00