From b4740d2b325a80bcecc5e56dff9add9081fcd31b Mon Sep 17 00:00:00 2001 From: Aníbal Limón Date: Thu, 29 Jun 2017 15:02:14 -0500 Subject: oeqa/core/loader: Generate function _make_failed_test dynamically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Python versions has different features from branches 3.4.x, 3.5.x and 3.6.x, i expected in wrong mode that was incremental for example changes in 3.4.4 be in 3.5.x but that's not true. The _make_failed_test internal method differs and is only available in certain versions >= 3.4.4 and in 3.5.x and 3.6.x branches but not realeses have been made including it. So to avoid futher problems inspect the _make_failed_test and generates function definition according what parameters are needed, the unique supossition is that exception argument is always passed. Related to, http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=d8380d098a290510b442a7abd2dd5a50cabf5844 Signed-off-by: Aníbal Limón --- meta/lib/oeqa/core/loader.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'meta/lib') diff --git a/meta/lib/oeqa/core/loader.py b/meta/lib/oeqa/core/loader.py index 80e3d2800c..e4c218b57f 100644 --- a/meta/lib/oeqa/core/loader.py +++ b/meta/lib/oeqa/core/loader.py @@ -4,6 +4,7 @@ import os import sys import unittest +import inspect from oeqa.core.utils.path import findFile from oeqa.core.utils.test import getSuiteModules, getCaseID @@ -12,19 +13,17 @@ from oeqa.core.case import OETestCase from oeqa.core.decorator import decoratorClasses, OETestDecorator, \ OETestFilter, OETestDiscover -if sys.version_info >= (3,4,4): - def _make_failed_test(classname, methodname, exception, suiteClass): - """ - When loading tests, the unittest framework stores any exceptions and - displays them only when the 'run' method is called. - - For our purposes, it is better to raise the exceptions in the loading - step rather than waiting to run the test suite. - """ - raise exception -else: - def _make_failed_test(classname, exception, suiteClass): - raise exception +# When loading tests, the unittest framework stores any exceptions and +# displays them only when the run method is called. +# +# For our purposes, it is better to raise the exceptions in the loading +# step rather than waiting to run the test suite. +# +# Generate the function definition because this differ across python versions +# Python >= 3.4.4 uses tree parameters instead four but for example Python 3.5.3 +# ueses four parameters so isn't incremental. +_failed_test_args = inspect.getargspec(unittest.loader._make_failed_test).args +exec("""def _make_failed_test(%s): raise exception""" % ', '.join(_failed_test_args)) unittest.loader._make_failed_test = _make_failed_test def _find_duplicated_modules(suite, directory): -- cgit 1.2.3-korg