diff options
Diffstat (limited to 'meta/lib/oeqa/utils/decorators.py')
-rw-r--r-- | meta/lib/oeqa/utils/decorators.py | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/meta/lib/oeqa/utils/decorators.py b/meta/lib/oeqa/utils/decorators.py index aabf4110cb..ea90164e5e 100644 --- a/meta/lib/oeqa/utils/decorators.py +++ b/meta/lib/oeqa/utils/decorators.py | |||
@@ -16,91 +16,6 @@ import threading | |||
16 | import signal | 16 | import signal |
17 | from functools import wraps | 17 | from functools import wraps |
18 | 18 | ||
19 | #get the "result" object from one of the upper frames provided that one of these upper frames is a unittest.case frame | ||
20 | class getResults(object): | ||
21 | def __init__(self): | ||
22 | #dynamically determine the unittest.case frame and use it to get the name of the test method | ||
23 | ident = threading.current_thread().ident | ||
24 | upperf = sys._current_frames()[ident] | ||
25 | while (upperf.f_globals['__name__'] != 'unittest.case'): | ||
26 | upperf = upperf.f_back | ||
27 | |||
28 | def handleList(items): | ||
29 | ret = [] | ||
30 | # items is a list of tuples, (test, failure) or (_ErrorHandler(), Exception()) | ||
31 | for i in items: | ||
32 | s = i[0].id() | ||
33 | #Handle the _ErrorHolder objects from skipModule failures | ||
34 | if "setUpModule (" in s: | ||
35 | ret.append(s.replace("setUpModule (", "").replace(")","")) | ||
36 | else: | ||
37 | ret.append(s) | ||
38 | # Append also the test without the full path | ||
39 | testname = s.split('.')[-1] | ||
40 | if testname: | ||
41 | ret.append(testname) | ||
42 | return ret | ||
43 | self.faillist = handleList(upperf.f_locals['result'].failures) | ||
44 | self.errorlist = handleList(upperf.f_locals['result'].errors) | ||
45 | self.skiplist = handleList(upperf.f_locals['result'].skipped) | ||
46 | |||
47 | def getFailList(self): | ||
48 | return self.faillist | ||
49 | |||
50 | def getErrorList(self): | ||
51 | return self.errorlist | ||
52 | |||
53 | def getSkipList(self): | ||
54 | return self.skiplist | ||
55 | |||
56 | class skipIfFailure(object): | ||
57 | |||
58 | def __init__(self,testcase): | ||
59 | self.testcase = testcase | ||
60 | |||
61 | def __call__(self,f): | ||
62 | @wraps(f) | ||
63 | def wrapped_f(*args, **kwargs): | ||
64 | res = getResults() | ||
65 | if self.testcase in (res.getFailList() or res.getErrorList()): | ||
66 | raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) | ||
67 | return f(*args, **kwargs) | ||
68 | wrapped_f.__name__ = f.__name__ | ||
69 | return wrapped_f | ||
70 | |||
71 | class skipIfSkipped(object): | ||
72 | |||
73 | def __init__(self,testcase): | ||
74 | self.testcase = testcase | ||
75 | |||
76 | def __call__(self,f): | ||
77 | @wraps(f) | ||
78 | def wrapped_f(*args, **kwargs): | ||
79 | res = getResults() | ||
80 | if self.testcase in res.getSkipList(): | ||
81 | raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) | ||
82 | return f(*args, **kwargs) | ||
83 | wrapped_f.__name__ = f.__name__ | ||
84 | return wrapped_f | ||
85 | |||
86 | class skipUnlessPassed(object): | ||
87 | |||
88 | def __init__(self,testcase): | ||
89 | self.testcase = testcase | ||
90 | |||
91 | def __call__(self,f): | ||
92 | @wraps(f) | ||
93 | def wrapped_f(*args, **kwargs): | ||
94 | res = getResults() | ||
95 | if self.testcase in res.getSkipList() or \ | ||
96 | self.testcase in res.getFailList() or \ | ||
97 | self.testcase in res.getErrorList(): | ||
98 | raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) | ||
99 | return f(*args, **kwargs) | ||
100 | wrapped_f.__name__ = f.__name__ | ||
101 | wrapped_f._depends_on = self.testcase | ||
102 | return wrapped_f | ||
103 | |||
104 | class testcase(object): | 19 | class testcase(object): |
105 | def __init__(self, test_case): | 20 | def __init__(self, test_case): |
106 | self.test_case = test_case | 21 | self.test_case = test_case |