@@ -184,15 +184,15 @@ def current_item(self) -> Optional[Union[Keyword, Launch, Suite, Test]]:
184
184
return self ._items .last ()
185
185
186
186
def __post_skipped_keyword (self , kwd : Keyword ) -> None :
187
+ self ._do_start_keyword (kwd )
187
188
skipped_logs = getattr (kwd , 'skipped_logs' , [])
188
189
for log_message in skipped_logs :
189
190
self ._log_message (log_message )
190
191
skipped_kwds = kwd .skipped_keywords
191
192
kwd .skipped_keywords = []
192
193
for skipped_kwd in skipped_kwds :
193
- self ._do_start_keyword (kwd )
194
194
self .__post_skipped_keyword (skipped_kwd )
195
- self ._do_end_keyword (kwd )
195
+ self ._do_end_keyword (kwd )
196
196
197
197
def _post_skipped_keywords (self , to_post : Optional [Any ]) -> None :
198
198
if not to_post :
@@ -475,6 +475,11 @@ def end_keyword(self, _: Optional[str], attributes: Dict, ts: Optional[Any] = No
475
475
if kwd .status == 'FAIL' and not kwd .posted and kwd .matched_filter is not WKUS_KEYWORD_MATCH :
476
476
self ._post_skipped_keywords (kwd )
477
477
478
+ if kwd .matched_filter is WKUS_KEYWORD_MATCH and WKUS_KEYWORD_MATCH .match (kwd ):
479
+ last_iteration = kwd .skipped_keywords [- 1 ]
480
+ self ._post_skipped_keywords (last_iteration )
481
+ self ._do_end_keyword (last_iteration , ts )
482
+
478
483
self ._remove_current_item ()
479
484
if not kwd .posted :
480
485
return
0 commit comments