[PATCH] test: correct entry point to pytest

Andy Shevchenko andy.shevchenko at gmail.com
Thu Jan 28 19:23:03 CET 2021


On Thu, Jan 28, 2021 at 1:46 PM Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> With Pytest 6.0.2 'make tests' fails:
>
> sandbox: Traceback (most recent call last):
>   File "./test/py/test.py", line 20, in <module>
>     sys.exit(load_entry_point('pytest', 'console_scripts', 'pytest')(args))
> TypeError: console_main() takes 0 positional arguments but 1 was given
>
> The definition of console_scripts has changed as follows:
>
> Pytest 4.6.1:
>
> [options.entry_points]
> console_scripts =
>         pytest=pytest:main
>         py.test=pytest:main
>
> Pytest 6.0.2:
>
> [options.entry_points]
> console_scripts =
>     pytest=pytest:console_main
>     py.test=pytest:console_main
>
> The new function console_main() has a comment:
> "This function is not meant for programmable use; use `main()`"
>
> Hence let's call pytest.main() directly.
> Move args processing into the __main__ paragraph.
>

Thanks for the patch!

And +1 that we shouldn't avoid the package == version as much as
possible. Distros provide a version and if Python doesn't have a
capability to provide a way how to do above conditionally to the
version, then probably we have to drop Python crap and use better
language for the test cases that must be robust.

> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>  test/py/test.py | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/test/py/test.py b/test/py/test.py
> index bee88d96bc..285fda5425 100755
> --- a/test/py/test.py
> +++ b/test/py/test.py
> @@ -10,11 +10,11 @@
>  import os
>  import os.path
>  import sys
> +import pytest
>  from pkg_resources import load_entry_point
>
> -# argv; py.test test_directory_name user-supplied-arguments
> -args = [os.path.dirname(__file__) + '/tests']
> -args.extend(sys.argv)
> -
>  if __name__ == '__main__':
> -    sys.exit(load_entry_point('pytest', 'console_scripts', 'pytest')(args))
> +    # argv; py.test test_directory_name user-supplied-arguments
> +    args = [os.path.dirname(__file__) + '/tests']
> +    args.extend(sys.argv)
> +    sys.exit(pytest.main(args))
> --
> 2.29.2
>


-- 
With Best Regards,
Andy Shevchenko


More information about the U-Boot mailing list