From 9345efdf5c4b23ab58f1a401d9868a99ab27eefc Mon Sep 17 00:00:00 2001 From: Radu Moisan Date: Fri, 28 Jun 2013 11:28:57 +0300 Subject: [PATCH] lib/oeqa/utils/decorators.py: decorators for test methods Some skip decorators meant only for test methods, providing some kind of test methods dependency. They are used together with a test method name not a condition. These are complementary to python's unittest skip decorators. (From OE-Core rev: 79cb89648702aa80ec986e0026c62948de905b87) Signed-off-by: Radu Moisan Signed-off-by: Stefan Stanacar Signed-off-by: Richard Purdie --- meta/lib/oeqa/utils/decorators.py | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 meta/lib/oeqa/utils/decorators.py diff --git a/meta/lib/oeqa/utils/decorators.py b/meta/lib/oeqa/utils/decorators.py new file mode 100644 index 0000000..21e6b22 --- /dev/null +++ b/meta/lib/oeqa/utils/decorators.py @@ -0,0 +1,40 @@ +from oeqa.oetest import * + +class skipIfFailure(object): + + def __init__(self,testcase): + self.testcase = testcase + + def __call__(self,f): + def wrapped_f(*args): + if self.testcase in (oeRuntimeTest.testFailures or oeRuntimeTest.testErrors): + raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) + f(*args) + wrapped_f.__name__ = f.__name__ + return wrapped_f + +class skipIfSkipped(object): + + def __init__(self,testcase): + self.testcase = testcase + + def __call__(self,f): + def wrapped_f(*args): + if self.testcase in oeRuntimeTest.testSkipped: + raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) + f(*args) + wrapped_f.__name__ = f.__name__ + return wrapped_f + +class skipUnlessPassed(object): + + def __init__(self,testcase): + self.testcase = testcase + + def __call__(self,f): + def wrapped_f(*args): + if self.testcase in (oeRuntimeTest.testSkipped, oeRuntimeTest.testFailures, oeRuntimeTest.testErrors): + raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) + f(*args) + wrapped_f.__name__ = f.__name__ + return wrapped_f -- 2.7.4