|
42 | 42 | from robotframework_reportportal.static import MAIN_SUITE_ID, PABOT_WITHOUT_LAUNCH_ID_MSG
|
43 | 43 | from robotframework_reportportal.variables import Variables
|
44 | 44 |
|
| 45 | + |
| 46 | +class __DummyContext: |
| 47 | + current = None |
| 48 | + |
| 49 | + |
| 50 | +try: |
| 51 | + from robot.running.context import EXECUTION_CONTEXTS |
| 52 | +except ImportError: |
| 53 | + warn( |
| 54 | + 'Unable to locate Robot Framework context. "--remove-keywords" and "--flatten-keywords" feature' |
| 55 | + " will not work.", |
| 56 | + stacklevel=2, |
| 57 | + ) |
| 58 | + EXECUTION_CONTEXTS = __DummyContext() |
| 59 | + |
45 | 60 | logger = logging.getLogger(__name__)
|
46 | 61 | VARIABLE_PATTERN = re.compile(r"^\s*\${[^}]*}\s*=\s*")
|
47 | 62 | IMAGE_PATTERN = re.compile(
|
|
61 | 76 |
|
62 | 77 | WUKS_KEYWORD_MATCH = KeywordNameMatch(WUKS_KEYWORD_NAME)
|
63 | 78 | FOR_KEYWORD_MATCH = KeywordTypeEqual(FOR_KEYWORD_TYPE)
|
64 |
| -WHILE_KEYWORD_NAME = KeywordTypeEqual(WHILE_KEYWORD_TYPE) |
| 79 | +WHILE_KEYWORD_MATCH = KeywordTypeEqual(WHILE_KEYWORD_TYPE) |
65 | 80 |
|
66 | 81 |
|
67 | 82 | def check_rp_enabled(func):
|
@@ -286,40 +301,33 @@ def _process_keyword_remove(self):
|
286 | 301 | if not self.variables.remove_keywords:
|
287 | 302 | return
|
288 | 303 |
|
289 |
| - try: |
290 |
| - self._remove_keyword_filters = [] |
291 |
| - |
292 |
| - # noinspection PyUnresolvedReferences |
293 |
| - from robot.running.context import EXECUTION_CONTEXTS |
294 |
| - |
295 |
| - current_context = EXECUTION_CONTEXTS.current |
296 |
| - if current_context: |
297 |
| - # noinspection PyProtectedMember |
298 |
| - for pattern_str in set(current_context.output._settings.remove_keywords): |
299 |
| - pattern_str_upper = pattern_str.upper() |
300 |
| - if "ALL" == pattern_str_upper: |
301 |
| - self._remove_all_keyword_content = True |
302 |
| - break |
303 |
| - if "PASSED" == pattern_str_upper: |
304 |
| - self._remove_data_passed_tests = True |
305 |
| - break |
306 |
| - if pattern_str_upper in {"FOR", "WHILE", "WUKS"}: |
307 |
| - if pattern_str_upper == "WUKS": |
308 |
| - self._remove_keyword_filters.append(WUKS_KEYWORD_MATCH) |
309 |
| - elif pattern_str_upper == "FOR": |
310 |
| - self._remove_keyword_filters.append(FOR_KEYWORD_MATCH) |
311 |
| - else: |
312 |
| - self._remove_keyword_filters.append(WHILE_KEYWORD_NAME) |
313 |
| - continue |
314 |
| - if ":" in pattern_str: |
315 |
| - pattern_type, pattern = pattern_str.split(":", 1) |
316 |
| - pattern_type = pattern_type.strip().upper() |
317 |
| - if "NAME" == pattern_type.upper(): |
318 |
| - self._remove_keyword_filters.append(KeywordNameMatch(pattern.strip())) |
319 |
| - elif "TAG" == pattern_type.upper(): |
320 |
| - self._remove_keyword_filters.append(KeywordTagMatch(pattern.strip())) |
321 |
| - except ImportError: |
322 |
| - warn('Unable to locate Robot Framework context. "--remove-keywords" feature will not work.', stacklevel=2) |
| 304 | + self._remove_keyword_filters = [] |
| 305 | + current_context = EXECUTION_CONTEXTS.current |
| 306 | + if current_context: |
| 307 | + # noinspection PyProtectedMember |
| 308 | + for pattern_str in set(current_context.output._settings.remove_keywords): |
| 309 | + pattern_str_upper = pattern_str.upper() |
| 310 | + if "ALL" == pattern_str_upper: |
| 311 | + self._remove_all_keyword_content = True |
| 312 | + break |
| 313 | + if "PASSED" == pattern_str_upper: |
| 314 | + self._remove_data_passed_tests = True |
| 315 | + break |
| 316 | + if pattern_str_upper in {"FOR", "WHILE", "WUKS"}: |
| 317 | + if pattern_str_upper == "WUKS": |
| 318 | + self._remove_keyword_filters.append(WUKS_KEYWORD_MATCH) |
| 319 | + elif pattern_str_upper == "FOR": |
| 320 | + self._remove_keyword_filters.append(FOR_KEYWORD_MATCH) |
| 321 | + else: |
| 322 | + self._remove_keyword_filters.append(WHILE_KEYWORD_MATCH) |
| 323 | + continue |
| 324 | + if ":" in pattern_str: |
| 325 | + pattern_type, pattern = pattern_str.split(":", 1) |
| 326 | + pattern_type = pattern_type.strip().upper() |
| 327 | + if "NAME" == pattern_type.upper(): |
| 328 | + self._remove_keyword_filters.append(KeywordNameMatch(pattern.strip())) |
| 329 | + elif "TAG" == pattern_type.upper(): |
| 330 | + self._remove_keyword_filters.append(KeywordTagMatch(pattern.strip())) |
323 | 331 |
|
324 | 332 | def start_launch(self, attributes: Dict[str, Any], ts: Optional[Any] = None) -> None:
|
325 | 333 | """Start a new launch at the ReportPortal.
|
@@ -508,7 +516,7 @@ def end_keyword(self, _: Optional[str], attributes: Dict, ts: Optional[Any] = No
|
508 | 516 | self._do_end_keyword(last_iteration, ts)
|
509 | 517 |
|
510 | 518 | elif (
|
511 |
| - (kwd.matched_filter is FOR_KEYWORD_MATCH) or (kwd.matched_filter is WHILE_KEYWORD_NAME) |
| 519 | + (kwd.matched_filter is FOR_KEYWORD_MATCH) or (kwd.matched_filter is WHILE_KEYWORD_MATCH) |
512 | 520 | ) and kwd.skip_origin is kwd:
|
513 | 521 | skipped_keywords = kwd.skipped_keywords
|
514 | 522 | skipped_keywords_num = len(skipped_keywords)
|
|
0 commit comments