oeqa/utils/decorators: fix missing keyword arguments on decorators

We need to handle keyword arguments here or sending a keyword argument
to a decorated function that accepts keyword arguments will trigger an
error. (This showed up when testcase decorators were added to the
recipetool.RecipetoolTests.test_recipetool_appendsrcfiles_basic_subdir
test).

(From OE-Core rev: f787b688f2884ce3fa888b4041030538c7d2bf55)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2015-10-26 13:28:26 +00:00
committed by Richard Purdie
parent a2d5b7ac76
commit fdfdfc8ccb

View File

@@ -57,11 +57,11 @@ class skipIfFailure(object):
self.testcase = testcase
def __call__(self,f):
def wrapped_f(*args):
def wrapped_f(*args, **kwargs):
res = getResults()
if self.testcase in (res.getFailList() or res.getErrorList()):
raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase)
return f(*args)
return f(*args, **kwargs)
wrapped_f.__name__ = f.__name__
return wrapped_f
@@ -71,11 +71,11 @@ class skipIfSkipped(object):
self.testcase = testcase
def __call__(self,f):
def wrapped_f(*args):
def wrapped_f(*args, **kwargs):
res = getResults()
if self.testcase in res.getSkipList():
raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase)
return f(*args)
return f(*args, **kwargs)
wrapped_f.__name__ = f.__name__
return wrapped_f
@@ -85,13 +85,13 @@ class skipUnlessPassed(object):
self.testcase = testcase
def __call__(self,f):
def wrapped_f(*args):
def wrapped_f(*args, **kwargs):
res = getResults()
if self.testcase in res.getSkipList() or \
self.testcase in res.getFailList() or \
self.testcase in res.getErrorList():
raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase)
return f(*args)
return f(*args, **kwargs)
wrapped_f.__name__ = f.__name__
wrapped_f._depends_on = self.testcase
return wrapped_f
@@ -102,8 +102,8 @@ class testcase(object):
self.test_case = test_case
def __call__(self, func):
def wrapped_f(*args):
return func(*args)
def wrapped_f(*args, **kwargs):
return func(*args, **kwargs)
wrapped_f.test_case = self.test_case
wrapped_f.__name__ = func.__name__
return wrapped_f