Skip to content

robot.result.configurer

SuiteConfigurer

1
2
3
4
5
6
7
SuiteConfigurer(
    remove_keywords=None,
    log_level=None,
    start_time=None,
    end_time=None,
    **base_config
)

Bases: SuiteConfigurer

Result suite configured.

Calls suite's :meth:~robot.result.testsuite.TestSuite.remove_keywords and :meth:~robot.result.testsuite.TestSuite.filter_messages methods and sets its start and end time based on the given named parameters.

base_config is forwarded to :class:robot.model.SuiteConfigurer <robot.model.configurer.SuiteConfigurer> that will do further configuration based on them.

Source code in src/robot/result/configurer.py
def __init__(self, remove_keywords=None, log_level=None, start_time=None,
             end_time=None, **base_config):
    super().__init__(**base_config)
    self.remove_keywords = self._get_remove_keywords(remove_keywords)
    self.log_level = log_level
    self.start_time = self._to_datetime(start_time)
    self.end_time = self._to_datetime(end_time)

start_suite

start_suite(suite: TestSuite) -> bool | None

Called when a suite starts. Default implementation does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_suite(self, suite: 'TestSuite') -> 'bool|None':
    """Called when a suite starts. Default implementation does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    pass

end_suite

end_suite(suite: TestSuite)

Called when a suite ends. Default implementation does nothing.

Source code in src/robot/model/visitor.py
def end_suite(self, suite: 'TestSuite'):
    """Called when a suite ends. Default implementation does nothing."""
    pass

visit_test

visit_test(test: TestCase)

Implements traversing through tests.

Can be overridden to allow modifying the passed in test without calling :meth:start_test or :meth:end_test nor visiting the body of the test.

Source code in src/robot/model/visitor.py
def visit_test(self, test: 'TestCase'):
    """Implements traversing through tests.

    Can be overridden to allow modifying the passed in ``test`` without calling
    :meth:`start_test` or :meth:`end_test` nor visiting the body of the test.
    """
    if self.start_test(test) is not False:
        if test.has_setup:
            test.setup.visit(self)
        test.body.visit(self)
        if test.has_teardown:
            test.teardown.visit(self)
        self.end_test(test)

start_test

start_test(test: TestCase) -> bool | None

Called when a test starts. Default implementation does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_test(self, test: 'TestCase') -> 'bool|None':
    """Called when a test starts. Default implementation does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    pass

end_test

end_test(test: TestCase)

Called when a test ends. Default implementation does nothing.

Source code in src/robot/model/visitor.py
def end_test(self, test: 'TestCase'):
    """Called when a test ends. Default implementation does nothing."""
    pass

visit_keyword

visit_keyword(keyword: Keyword)

Implements traversing through keywords.

Can be overridden to allow modifying the passed in kw without calling :meth:start_keyword or :meth:end_keyword nor visiting the body of the keyword

Source code in src/robot/model/visitor.py
def visit_keyword(self, keyword: 'Keyword'):
    """Implements traversing through keywords.

    Can be overridden to allow modifying the passed in ``kw`` without
    calling :meth:`start_keyword` or :meth:`end_keyword` nor visiting
    the body of the keyword
    """
    if self.start_keyword(keyword) is not False:
        self._possible_setup(keyword)
        self._possible_body(keyword)
        self._possible_teardown(keyword)
        self.end_keyword(keyword)

start_keyword

start_keyword(keyword: Keyword) -> bool | None

Called when a keyword starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_keyword(self, keyword: 'Keyword') -> 'bool|None':
    """Called when a keyword starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(keyword)

end_keyword

end_keyword(keyword: Keyword)

Called when a keyword ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_keyword(self, keyword: 'Keyword'):
    """Called when a keyword ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(keyword)

visit_for

visit_for(for_: For)

Implements traversing through FOR loops.

Can be overridden to allow modifying the passed in for_ without calling :meth:start_for or :meth:end_for nor visiting body.

Source code in src/robot/model/visitor.py
def visit_for(self, for_: 'For'):
    """Implements traversing through FOR loops.

    Can be overridden to allow modifying the passed in ``for_`` without
    calling :meth:`start_for` or :meth:`end_for` nor visiting body.
    """
    if self.start_for(for_) is not False:
        for_.body.visit(self)
        self.end_for(for_)

start_for

start_for(for_: For) -> bool | None

Called when a FOR loop starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_for(self, for_: 'For') -> 'bool|None':
    """Called when a FOR loop starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(for_)

end_for

end_for(for_: For)

Called when a FOR loop ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_for(self, for_: 'For'):
    """Called when a FOR loop ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(for_)

visit_for_iteration

visit_for_iteration(iteration: ForIteration)

Implements traversing through single FOR loop iteration.

This is only used with the result side model because on the running side there are no iterations.

Can be overridden to allow modifying the passed in iteration without calling :meth:start_for_iteration or :meth:end_for_iteration nor visiting body.

Source code in src/robot/model/visitor.py
def visit_for_iteration(self, iteration: 'ForIteration'):
    """Implements traversing through single FOR loop iteration.

    This is only used with the result side model because on the running side
    there are no iterations.

    Can be overridden to allow modifying the passed in ``iteration`` without
    calling :meth:`start_for_iteration` or :meth:`end_for_iteration` nor visiting
    body.
    """
    if self.start_for_iteration(iteration) is not False:
        iteration.body.visit(self)
        self.end_for_iteration(iteration)

start_for_iteration

start_for_iteration(iteration: ForIteration) -> bool | None

Called when a FOR loop iteration starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_for_iteration(self, iteration: 'ForIteration') -> 'bool|None':
    """Called when a FOR loop iteration starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(iteration)

end_for_iteration

end_for_iteration(iteration: ForIteration)

Called when a FOR loop iteration ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_for_iteration(self, iteration: 'ForIteration'):
    """Called when a FOR loop iteration ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(iteration)

visit_if

visit_if(if_: If)

Implements traversing through IF/ELSE structures.

Notice that if_ does not have any data directly. Actual IF/ELSE branches are in its body and they are visited separately using :meth:visit_if_branch.

Can be overridden to allow modifying the passed in if_ without calling :meth:start_if or :meth:end_if nor visiting branches.

Source code in src/robot/model/visitor.py
def visit_if(self, if_: 'If'):
    """Implements traversing through IF/ELSE structures.

    Notice that ``if_`` does not have any data directly. Actual IF/ELSE
    branches are in its ``body`` and they are visited separately using
    :meth:`visit_if_branch`.

    Can be overridden to allow modifying the passed in ``if_`` without
    calling :meth:`start_if` or :meth:`end_if` nor visiting branches.
    """
    if self.start_if(if_) is not False:
        if_.body.visit(self)
        self.end_if(if_)

start_if

start_if(if_: If) -> bool | None

Called when an IF/ELSE structure starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_if(self, if_: 'If') -> 'bool|None':
    """Called when an IF/ELSE structure starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(if_)

end_if

end_if(if_: If)

Called when an IF/ELSE structure ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_if(self, if_: 'If'):
    """Called when an IF/ELSE structure ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(if_)

visit_if_branch

visit_if_branch(branch: IfBranch)

Implements traversing through single IF/ELSE branch.

Can be overridden to allow modifying the passed in branch without calling :meth:start_if_branch or :meth:end_if_branch nor visiting body.

Source code in src/robot/model/visitor.py
def visit_if_branch(self, branch: 'IfBranch'):
    """Implements traversing through single IF/ELSE branch.

    Can be overridden to allow modifying the passed in ``branch`` without
    calling :meth:`start_if_branch` or :meth:`end_if_branch` nor visiting body.
    """
    if self.start_if_branch(branch) is not False:
        branch.body.visit(self)
        self.end_if_branch(branch)

start_if_branch

start_if_branch(branch: IfBranch) -> bool | None

Called when an IF/ELSE branch starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_if_branch(self, branch: 'IfBranch') -> 'bool|None':
    """Called when an IF/ELSE branch starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(branch)

end_if_branch

end_if_branch(branch: IfBranch)

Called when an IF/ELSE branch ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_if_branch(self, branch: 'IfBranch'):
    """Called when an IF/ELSE branch ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(branch)

visit_try

visit_try(try_: Try)

Implements traversing through TRY/EXCEPT structures.

This method is used with the TRY/EXCEPT root element. Actual TRY, EXCEPT, ELSE and FINALLY branches are visited separately using :meth:visit_try_branch.

Source code in src/robot/model/visitor.py
def visit_try(self, try_: 'Try'):
    """Implements traversing through TRY/EXCEPT structures.

    This method is used with the TRY/EXCEPT root element. Actual TRY, EXCEPT, ELSE
    and FINALLY branches are visited separately using :meth:`visit_try_branch`.
    """
    if self.start_try(try_) is not False:
        try_.body.visit(self)
        self.end_try(try_)

start_try

start_try(try_: Try) -> bool | None

Called when a TRY/EXCEPT structure starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_try(self, try_: 'Try') -> 'bool|None':
    """Called when a TRY/EXCEPT structure starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(try_)

end_try

end_try(try_: Try)

Called when a TRY/EXCEPT structure ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_try(self, try_: 'Try'):
    """Called when a TRY/EXCEPT structure ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(try_)

visit_try_branch

visit_try_branch(branch: TryBranch)

Visits individual TRY, EXCEPT, ELSE and FINALLY branches.

Source code in src/robot/model/visitor.py
def visit_try_branch(self, branch: 'TryBranch'):
    """Visits individual TRY, EXCEPT, ELSE and FINALLY branches."""
    if self.start_try_branch(branch) is not False:
        branch.body.visit(self)
        self.end_try_branch(branch)

start_try_branch

start_try_branch(branch: TryBranch) -> bool | None

Called when TRY, EXCEPT, ELSE or FINALLY branches start.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_try_branch(self, branch: 'TryBranch') -> 'bool|None':
    """Called when TRY, EXCEPT, ELSE or FINALLY branches start.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(branch)

end_try_branch

end_try_branch(branch: TryBranch)

Called when TRY, EXCEPT, ELSE and FINALLY branches end.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_try_branch(self, branch: 'TryBranch'):
    """Called when TRY, EXCEPT, ELSE and FINALLY branches end.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(branch)

visit_while

visit_while(while_: While)

Implements traversing through WHILE loops.

Can be overridden to allow modifying the passed in while_ without calling :meth:start_while or :meth:end_while nor visiting body.

Source code in src/robot/model/visitor.py
def visit_while(self, while_: 'While'):
    """Implements traversing through WHILE loops.

    Can be overridden to allow modifying the passed in ``while_`` without
    calling :meth:`start_while` or :meth:`end_while` nor visiting body.
    """
    if self.start_while(while_) is not False:
        while_.body.visit(self)
        self.end_while(while_)

start_while

start_while(while_: While) -> bool | None

Called when a WHILE loop starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_while(self, while_: 'While') -> 'bool|None':
    """Called when a WHILE loop starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(while_)

end_while

end_while(while_: While)

Called when a WHILE loop ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_while(self, while_: 'While'):
    """Called when a WHILE loop ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(while_)

visit_while_iteration

visit_while_iteration(iteration: WhileIteration)

Implements traversing through single WHILE loop iteration.

This is only used with the result side model because on the running side there are no iterations.

Can be overridden to allow modifying the passed in iteration without calling :meth:start_while_iteration or :meth:end_while_iteration nor visiting body.

Source code in src/robot/model/visitor.py
def visit_while_iteration(self, iteration: 'WhileIteration'):
    """Implements traversing through single WHILE loop iteration.

    This is only used with the result side model because on the running side
    there are no iterations.

    Can be overridden to allow modifying the passed in ``iteration`` without
    calling :meth:`start_while_iteration` or :meth:`end_while_iteration` nor visiting
    body.
    """
    if self.start_while_iteration(iteration) is not False:
        iteration.body.visit(self)
        self.end_while_iteration(iteration)

start_while_iteration

1
2
3
start_while_iteration(
    iteration: WhileIteration,
) -> bool | None

Called when a WHILE loop iteration starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_while_iteration(self, iteration: 'WhileIteration') -> 'bool|None':
    """Called when a WHILE loop iteration starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(iteration)

end_while_iteration

end_while_iteration(iteration: WhileIteration)

Called when a WHILE loop iteration ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_while_iteration(self, iteration: 'WhileIteration'):
    """Called when a WHILE loop iteration ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(iteration)

visit_var

visit_var(var: Var)

Visits a VAR elements.

Source code in src/robot/model/visitor.py
def visit_var(self, var: 'Var'):
    """Visits a VAR elements."""
    if self.start_var(var) is not False:
        self._possible_body(var)
        self.end_var(var)

start_var

start_var(var: Var) -> bool | None

Called when a VAR element starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_var(self, var: 'Var') -> 'bool|None':
    """Called when a VAR element starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(var)

end_var

end_var(var: Var)

Called when a VAR element ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_var(self, var: 'Var'):
    """Called when a VAR element ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(var)

visit_return

visit_return(return_: Return)

Visits a RETURN elements.

Source code in src/robot/model/visitor.py
def visit_return(self, return_: 'Return'):
    """Visits a RETURN elements."""
    if self.start_return(return_) is not False:
        self._possible_body(return_)
        self.end_return(return_)

start_return

start_return(return_: Return) -> bool | None

Called when a RETURN element starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_return(self, return_: 'Return') -> 'bool|None':
    """Called when a RETURN element starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(return_)

end_return

end_return(return_: Return)

Called when a RETURN element ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_return(self, return_: 'Return'):
    """Called when a RETURN element ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(return_)

visit_continue

visit_continue(continue_: Continue)

Visits CONTINUE elements.

Source code in src/robot/model/visitor.py
def visit_continue(self, continue_: 'Continue'):
    """Visits CONTINUE elements."""
    if self.start_continue(continue_) is not False:
        self._possible_body(continue_)
        self.end_continue(continue_)

start_continue

start_continue(continue_: Continue) -> bool | None

Called when a CONTINUE element starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_continue(self, continue_: 'Continue') -> 'bool|None':
    """Called when a CONTINUE element starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(continue_)

end_continue

end_continue(continue_: Continue)

Called when a CONTINUE element ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_continue(self, continue_: 'Continue'):
    """Called when a CONTINUE element ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(continue_)

visit_break

visit_break(break_: Break)

Visits BREAK elements.

Source code in src/robot/model/visitor.py
def visit_break(self, break_: 'Break'):
    """Visits BREAK elements."""
    if self.start_break(break_) is not False:
        self._possible_body(break_)
        self.end_break(break_)

start_break

start_break(break_: Break) -> bool | None

Called when a BREAK element starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_break(self, break_: 'Break') -> 'bool|None':
    """Called when a BREAK element starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(break_)

end_break

end_break(break_: Break)

Called when a BREAK element ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_break(self, break_: 'Break'):
    """Called when a BREAK element ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(break_)

visit_error

visit_error(error: Error)

Visits body items resulting from invalid syntax.

Examples include syntax like END or ELSE in wrong place and invalid setting like [Invalid].

Source code in src/robot/model/visitor.py
def visit_error(self, error: 'Error'):
    """Visits body items resulting from invalid syntax.

    Examples include syntax like ``END`` or ``ELSE`` in wrong place and
    invalid setting like ``[Invalid]``.
    """
    if self.start_error(error) is not False:
        self._possible_body(error)
        self.end_error(error)

start_error

start_error(error: Error) -> bool | None

Called when a ERROR element starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_error(self, error: 'Error') -> 'bool|None':
    """Called when a ERROR element starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(error)

end_error

end_error(error: Error)

Called when a ERROR element ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_error(self, error: 'Error'):
    """Called when a ERROR element ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(error)

visit_message

visit_message(message: Message)

Implements visiting messages.

Can be overridden to allow modifying the passed in msg without calling :meth:start_message or :meth:end_message.

Source code in src/robot/model/visitor.py
def visit_message(self, message: 'Message'):
    """Implements visiting messages.

    Can be overridden to allow modifying the passed in ``msg`` without
    calling :meth:`start_message` or :meth:`end_message`.
    """
    if self.start_message(message) is not False:
        self.end_message(message)

start_message

start_message(message: Message) -> bool | None

Called when a message starts.

By default, calls :meth:start_body_item which, by default, does nothing.

Can return explicit False to stop visiting.

Source code in src/robot/model/visitor.py
def start_message(self, message: 'Message') -> 'bool|None':
    """Called when a message starts.

    By default, calls :meth:`start_body_item` which, by default, does nothing.

    Can return explicit ``False`` to stop visiting.
    """
    return self.start_body_item(message)

end_message

end_message(message: Message)

Called when a message ends.

By default, calls :meth:end_body_item which, by default, does nothing.

Source code in src/robot/model/visitor.py
def end_message(self, message: 'Message'):
    """Called when a message ends.

    By default, calls :meth:`end_body_item` which, by default, does nothing.
    """
    self.end_body_item(message)

start_body_item

start_body_item(item: BodyItem) -> bool | None

Called, by default, when keywords, messages or control structures start.

More specific :meth:start_keyword, :meth:start_message, :meth:start_for`, etc. can be implemented to visit only keywords, messages or specific control structures.

Can return explicit False to stop visiting. Default implementation does nothing.

Source code in src/robot/model/visitor.py
def start_body_item(self, item: 'BodyItem') -> 'bool|None':
    """Called, by default, when keywords, messages or control structures start.

    More specific :meth:`start_keyword`, :meth:`start_message`, `:meth:`start_for`,
    etc. can be implemented to visit only keywords, messages or specific control
    structures.

    Can return explicit ``False`` to stop visiting. Default implementation does
    nothing.
    """
    pass

end_body_item

end_body_item(item: BodyItem)

Called, by default, when keywords, messages or control structures end.

More specific :meth:end_keyword, :meth:end_message, :meth:end_for`, etc. can be implemented to visit only keywords, messages or specific control structures.

Default implementation does nothing.

Source code in src/robot/model/visitor.py
def end_body_item(self, item: 'BodyItem'):
    """Called, by default, when keywords, messages or control structures end.

    More specific :meth:`end_keyword`, :meth:`end_message`, `:meth:`end_for`,
    etc. can be implemented to visit only keywords, messages or specific control
    structures.

    Default implementation does nothing.
    """
    pass