epenet
5f25b71df7
Add type hints to core tests ( #88478 )
2023-02-20 11:42:56 +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
4142f0d15d
Add return type to tests without arguments ( #87613 )
...
* Add return type to tests without arguments
* Black
* Cancel fixture amends
2023-02-07 14:20:06 +01:00
henryptung
7d27dad190
Remove pip --prefix workaround ( #74922 )
...
Remove --prefix workaround
See discussion in https://github.com/home-assistant/core/issues/74405 .
This workaround is no longer needed on pip >= 21.0 and actively causes problems for pip >= 21.3.
2022-07-11 11:33:28 +02:00
Erik Montnemery
fa952364cc
Remove test_check_package_version_does_not_match ( #59785 )
2021-11-16 07:54:08 -08:00
Marc Mueller
f1d48ddfe3
Update pylint to 2.8.0 ( #49637 )
2021-04-24 14:39:24 -10:00
J. Nick Koston
9a686d148e
Ensure startup can proceed when there is package metadata cruft ( #47706 )
...
If a package fails to install or partially installed importlib
version can return None. We now try pkg_resources first, then
try importlib, and handle the case where version unexpectedly
returns None
2021-03-10 21:12:02 -10:00
Franck Nijhof
65cf2fcb6f
Drop asynctest ( #44746 )
2021-01-01 22:31:56 +01:00
Paulus Schoutsen
51a63c1fc4
Drop last bits of asyncio.coroutine ( #39280 )
2020-08-26 16:57:52 +02:00
Paulus Schoutsen
ec47216388
Use built-in test helpers on 3.8 ( #34901 )
2020-04-30 13:29:50 -07:00
Paulus Schoutsen
e7f8d6bbf7
Fix more tests on Python 3.8 ( #34703 )
2020-04-25 15:52:50 -07:00
Bas Nijholt
f60125b5c9
Sort imports according to PEP8 for 'tests' ( #29791 )
2019-12-09 16:52:24 +01:00
Paulus Schoutsen
4de97abc3a
Black
2019-07-31 12:25:30 -07:00
Pascal Vizeli
c9453bab19
Prefere binary with wheels ( #24669 )
2019-06-21 08:47:56 -07:00
Pascal Vizeli
d9852bc75d
Support Hass.io wheels / docker env ( #24175 )
...
* Support Hass.io wheels / docker env
* address comments
* fix lint
2019-05-29 15:30:09 -07:00
Paulus Schoutsen
179fb0f3b5
Use importlib metadata to check installed packages ( #24114 )
...
* Use importlib metadata
* Fix script
* Remove unused import
* Update requirements"
2019-05-26 11:58:42 -07:00
Paulus Schoutsen
09dc4d663d
Improve package loadable ( #16237 )
...
* Add caching to package loadable
* Fix tests
* Improve package loadable
* Lint
* Typing
2018-08-28 12:52:18 +02:00
Paulus Schoutsen
a14980716d
Package loadable: compare case insensitive ( #16234 )
2018-08-28 10:53:12 +02:00
Paulus Schoutsen
2e6cb2235c
Check correctly if package is loadable ( #16121 )
2018-08-22 12:17:14 +02:00
Paulus Schoutsen
0b114f0755
Do not mount deps folder when running in virtual env ( #14993 )
...
* Do not mount deps folder when inside virtual env
* Add tests
* Fix package test
2018-06-16 10:48:41 -04:00
Paulus Schoutsen
38af04c6ce
Reinstate our old virtual env check in favor of pip ( #12932 )
2018-03-05 15:51:37 -08:00
Martin Hjelmare
543e8bb62e
Fix check for running inside venv ( #8481 )
...
* Import and use the function from pip instead of defining it
ourselves.
* Fix tests.
2017-07-15 07:25:02 -07:00
Martin Hjelmare
ba019c799a
Make deps directory persistent over upgrades ( #7801 )
...
* Use pip install --user if venv not active
* Set PYTHONUSERBASE to deps directory, when installing with --user
option.
* Reset --prefix option to workaround incompatability when installing
with --user option. This requires pip version 8.0.0 or greater.
* Require pip version 8.0.3.
* Do not delete deps directory on home assistant upgrade.
* Fix local lib mount and check package exist.
* Update and add tests
* Fix upgrade from before version 0.46
* Extract function to get user site
* Add function(s) to package util to get user site.
* Use async subprocess for one of the functions to get user site.
* Add function to package util to check if virtual environment is
active.
* Add and update tests.
* Update version for last removal of deps dir
* Address comments
* Rewrite package util tests with pytest
* Rewrite all existing unittest class based tests for package util as
test functions, and capitalize pytest fixtures.
* Add test for installing with target inside venv.
2017-07-13 19:26:21 -07:00
Pierre Ståhl
f5dd25c87f
Capture and log pip install error output ( #7200 )
...
Add an optional extended description…
2017-04-21 14:15:05 +02:00
Fabian Affolter
3aa1b6a3f8
Fix PEP257 issues ( #3962 )
2016-10-20 19:10:12 +02:00
Rob Capellini
272539105f
Replacing tempfile with mock_open in tests ( #3753 )
...
- test_bootstrap.py
- test_config.py
- components/test_init.py
- components/test_panel_custom.py
- components/test_api.py
- components/notify/test_file.py
- components/notify/test_demo.py
- components/camera/test_local_file.py
- helpers/test_config_validation.py
- util/test_package.py
- util/test_yaml.py
No changes needed in:
- components/cover/test_command_line.py
- components/switch/test_command_line.py
- components/rollershutter/test_command_line.py
- components/test_shell_command.py
- components/notify/test_command_line.py
Misc changes in:
- components/mqtt/test_server.py
Also, removed some unused mock parameters in tests/components/mqtt/test_server.py.
2016-10-17 20:16:36 -07:00
Johann Kellerman
aadf6a7750
Handle requirements for scripts ( #2765 )
2016-08-09 23:54:34 -07:00
Paulus Schoutsen
6714392e9c
Move elevation to core config and clean up HTTP mocking in tests ( #2378 )
...
* Stick version numbers
* Move elevation to core config
* Migrate forecast test to requests-mock
* Migrate YR tests to requests-mock
* Add requests_mock to requirements_test.txt
* Move conf code from bootstrap to config
* More config fixes
* Fix some more issues
* Add test for set config and failing auto detect
2016-06-27 09:02:45 -07:00
Jan Harkes
241735c924
Change local library path from {config_dir}/lib to {config_dir}/deps. ( #1799 )
...
Just on the off chance that someone who happens to run as root and also
doesn't correctly parse "just remove config /lib and restart".
2016-04-11 20:07:50 -07:00
Fabian Affolter
9838697d2b
Fix PEP257 issues
2016-03-09 10:25:50 +01:00
Fabian Affolter
00afaac54c
Update for file header, docstrings, and PEP8/PEP257
2016-02-13 14:19:11 +01:00
Ryan Kraus
56ac4281c7
Better tear down of util/package tests
...
Explicitly removed temp directory at the end of util/package unit tests.
2016-01-30 14:39:17 -05:00
Ryan Kraus
4a8f55e630
Revised package util tests
...
The package util tests were revised to pull the external library
pyhelloworld3 from an internal source rather than external. This speeds
up tests, makes tests more reliable, and removes dependency on internet
connection.
2016-01-30 14:08:32 -05:00
Ryan Kraus
0631f5c59d
Added tests for package utilities
2016-01-30 06:44:22 -05:00