23 if upper.startswith(
'NAME:'):
25 if upper.startswith(
'TAG:'):
28 return {
'ALL': AllKeywordsRemover,
29 'PASSED': PassedKeywordRemover,
30 'FOR': ForLoopItemsRemover,
31 'WHILE': WhileLoopItemsRemover,
32 'WUKS': WaitUntilKeywordSucceedsRemover}[upper]()
34 raise DataError(f
"Expected 'ALL', 'PASSED', 'NAME:<pattern>', 'TAG:<pattern>', "
35 f
"'FOR' or 'WUKS', got '{how}'.")
42 _message =
'Keyword data removed using --RemoveKeywords option.'
75 if not suite.statistics.failed:
76 for keyword
in suite.setup, suite.teardown:
82 for keyword
in test.body:
89 class ByNameKeywordRemover(_KeywordRemover):
92 _KeywordRemover.__init__(self)
93 self.
_matcher_matcher = Matcher(pattern, ignore=
'_')
103 _KeywordRemover.__init__(self)
115 _message =
'%d passing step%s removed using --RemoveKeywords option.'
118 before = len(loop.body)
123 iterations = body.filter(messages=
False)
124 for it
in iterations[:-1]:
145 _message =
'%d failing step%s removed using --RemoveKeywords option.'
148 if kw.libname ==
'BuiltIn' and kw.kwname ==
'Wait Until Keyword Succeeds':
149 before = len(kw.body)
154 keywords = body.filter(messages=
False)
156 include_from_end = 2
if keywords[-1].passed
else 1
157 for kw
in keywords[:-include_from_end]:
168 return not self.
foundfound
171 return not self.
foundfound
174 return not self.
foundfound
177 if msg.level
in (
'WARN',
'ERROR'):
178 self.
foundfound =
True
187 removed = len_before - len(kw.body)
191 def set(self, kw, message=None):
192 kw.doc = (
'%s\n\n_%s_' % (kw.doc, message
or self.
_message_message)).strip()
Interface to ease traversing through a test suite structure.
def visit_keyword(self, keyword)
Implements traversing through keywords.
def visit_for(self, for_)
Implements traversing through FOR loops.
def visit_if_branch(self, branch)
Implements traversing through single IF/ELSE branch.
def __init__(self, pattern)
def start_keyword(self, kw)
Called when a keyword starts.
def start_keyword(self, kw)
Called when a keyword starts.
def __init__(self, pattern)
def start_for(self, for_)
Called when a FOR loop starts.
def visit_test(self, test)
Implements traversing through tests.
def start_suite(self, suite)
Called when a suite starts.
def visit_keyword(self, keyword)
Implements traversing through keywords.
def set(self, kw, message=None)
def __init__(self, message)
def set_if_removed(self, kw, len_before)
def _remove_keywords(self, body)
def start_keyword(self, kw)
Called when a keyword starts.
def start_keyword(self, keyword)
Called when a keyword starts.
def visit_message(self, msg)
Implements visiting messages.
def start_suite(self, suite)
Called when a suite starts.
def start_test(self, test)
Called when a test starts.
def start_while(self, while_)
Called when a WHILE loop starts.
def _clear_content(self, item)
def _failed_or_warning_or_error(self, item)
def _warning_or_error(self, item)
def _remove_from_loop(self, loop)
def _remove_keywords(self, body)