]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
test: correct entry point to pytest
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 28 Jan 2021 11:46:11 +0000 (12:46 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 29 Jan 2021 15:36:49 +0000 (10:36 -0500)
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.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Tested-by: Tom Rini <trini@konsulko.com>
test/py/test.py

index bee88d96bc2629cf21ba84bd38db5bd8586f304d..285fda54258716ef0be79db9fc713ac997ebcb6d 100755 (executable)
 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))