@@ -23,6 +23,8 @@ def end_suite(self, suite):
23
23
# Both 'PASS' and 'NOT_RUN' (used in dry-run) statuses are OK.
24
24
if teardown and teardown .status == 'FAIL' :
25
25
suite .suite_teardown_failed (teardown .message )
26
+ if teardown and teardown .status == 'SKIP' :
27
+ suite .suite_teardown_skipped (teardown .message )
26
28
27
29
def visit_test (self , test ):
28
30
pass
@@ -32,16 +34,26 @@ def visit_keyword(self, keyword):
32
34
33
35
34
36
class SuiteTeardownFailed (SuiteVisitor ):
35
- _normal_msg = 'Parent suite teardown failed:\n '
36
- _also_msg = '\n \n Also parent suite teardown failed:\n '
37
+ _normal_msg = 'Parent suite teardown failed:\n %s'
38
+ _also_msg = '\n \n Also parent suite teardown failed:\n %s'
39
+ _normal_skip_msg = 'Skipped in parent suite teardown:\n %s'
40
+ _also_skip_msg = 'Skipped in parent suite teardown:\n %s\n \n Earlier message:\n %s'
37
41
38
- def __init__ (self , error ):
39
- self ._normal_msg += error
40
- self ._also_msg += error
42
+ def __init__ (self , message , skipped = False ):
43
+ self ._skipped = skipped
44
+ self ._message = message
41
45
42
46
def visit_test (self , test ):
43
- test .status = 'FAIL'
44
- test .message += self ._also_msg if test .message else self ._normal_msg
47
+ if not self ._skipped :
48
+ test .status = 'FAIL'
49
+ prefix = self ._also_msg if test .message else self ._normal_msg
50
+ test .message += prefix % self ._message
51
+ else :
52
+ test .status = 'SKIP'
53
+ if test .message :
54
+ test .message = self ._also_skip_msg % (self ._message , test .message )
55
+ else :
56
+ test .message = self ._normal_skip_msg % self ._message
45
57
46
58
def visit_keyword (self , keyword ):
47
59
pass
0 commit comments