[U-Boot] [PATCHv2 10/13] test/py: Rework test.py to be a different kind of wrapper

Tom Rini trini at konsulko.com
Wed Oct 23 03:20:07 UTC 2019


Now that we have moved to being based on pytest for python3 we need to
make our test.py wrapper more robust in terms of only calling python3
rather than possibly finding and using python2.  To do this, change from
execvp()'ing pytest to invoking the package itself via python.  In the
event that pytest is unavailable we still get a user-friendly error:

pkg_resources.DistributionNotFound: The 'pytest' distribution was not found and is required by the application

Cc: Stephen Warren <swarren at nvidia.com>
Signed-off-by: Tom Rini <trini at konsulko.com>
---
Changes in v2:
- New patch
---
 test/py/test.py | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

diff --git a/test/py/test.py b/test/py/test.py
index 0ce1838833f6..bee88d96bc26 100755
--- a/test/py/test.py
+++ b/test/py/test.py
@@ -10,23 +10,11 @@
 import os
 import os.path
 import sys
-
-# Get rid of argv[0]
-sys.argv.pop(0)
+from pkg_resources import load_entry_point
 
 # argv; py.test test_directory_name user-supplied-arguments
-args = ['py.test', os.path.dirname(__file__) + '/tests']
+args = [os.path.dirname(__file__) + '/tests']
 args.extend(sys.argv)
 
-try:
-    os.execvp('py.test', args)
-except:
-    # Log full details of any exception for detailed analysis
-    import traceback
-    traceback.print_exc()
-    # Hint to the user that they likely simply haven't installed the required
-    # dependencies.
-    print('''
-exec(py.test) failed; perhaps you are missing some dependencies?
-See test/py/README.md for the list.''', file=sys.stderr)
-    sys.exit(1)
+if __name__ == '__main__':
+    sys.exit(load_entry_point('pytest', 'console_scripts', 'pytest')(args))
-- 
2.17.1



More information about the U-Boot mailing list