[yocto] [patchtest][PATCH 2/2] patchtest: Allow tests to import helper modules

Paul Barker paul at betafive.co.uk
Fri Nov 15 05:23:24 PST 2019


When running patchtest locally to figure out what was wrong with my
patch, I saw the similar exceptions for each test module:

    Traceback (most recent call last):
      File "/usr/lib/python3.6/unittest/case.py", line 59, in testPartExecutor
        yield
      File "/usr/lib/python3.6/unittest/case.py", line 605, in run
        testMethod()
      File "/usr/lib/python3.6/unittest/loader.py", line 34, in testFailure
        raise self._exception
    ImportError: Failed to import test module: tests.test_python_pylint
    Traceback (most recent call last):
      File "/usr/lib/python3.6/unittest/loader.py", line 428, in _find_test_path
        module = self._get_module_from_name(name)
      File "/usr/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
        __import__(name)
      File "/mnt/build/Projects/Konsulko/patchtest/patchtest-oe/tests/test_python_pylint.py", line 18, in <module>
        import base
    ModuleNotFoundError: No module named 'base'

To fix this the import patch used when loading test modules has been
extended.

Signed-off-by: Paul Barker <paul at betafive.co.uk>
---
 patchtest | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/patchtest b/patchtest
index 59b19f5..a204479 100755
--- a/patchtest
+++ b/patchtest
@@ -138,6 +138,10 @@ def _runner(resultklass, prefix=None):
     if prefix:
         loader.testMethodPrefix = prefix
 
+    # allow tests to import helper modules
+    sys.path.insert(0, pti.startdir)
+    sys.path.insert(0, os.path.join(pti.startdir, 'tests'))
+
     # create the suite with discovered tests and the corresponding runner
     suite = loader.discover(start_dir=pti.startdir, pattern=pti.pattern, top_level_dir=pti.topdir)
     ntc = suite.countTestCases()
-- 
2.17.1



More information about the yocto mailing list