This moved the last remaining _console_interaction() to ConsoleMixIn. None tests call it directly, so only the other methods in ConsoleMixIn needed to be adapted.
Signed-off-by: Wainer dos Santos Moschetta <waine...@redhat.com> --- tests/acceptance/avocado_qemu/__init__.py | 57 +++++++++++------------ 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py index b21f9ea3ff..a6de3fe11a 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -76,34 +76,33 @@ def pick_default_qemu_bin(arch=None): if is_readable_executable_file(qemu_bin_from_bld_dir_path): return qemu_bin_from_bld_dir_path - -def _console_interaction(test, success_message, failure_message, - send_string, keep_sending=False, vm=None): - assert not keep_sending or send_string - if vm is None: - vm = test.vm - console = vm.console_socket.makefile() - console_logger = logging.getLogger('console') - while True: - if send_string: - vm.console_socket.sendall(send_string.encode()) - if not keep_sending: - send_string = None # send only once - msg = console.readline().strip() - if not msg: - continue - console_logger.debug(msg) - if success_message is None or success_message in msg: - break - if failure_message and failure_message in msg: - console.close() - fail = 'Failure message found in console: "%s". Expected: "%s"' % \ - (failure_message, success_message) - test.fail(fail) - class ConsoleMixIn(): """Contains utilities for interacting with a guest via Console.""" + def _console_interaction(self, success_message, failure_message, + send_string, keep_sending=False, vm=None): + assert not keep_sending or send_string + if vm is None: + vm = self.vm + console = vm.console_socket.makefile() + console_logger = logging.getLogger('console') + while True: + if send_string: + vm.console_socket.sendall(send_string.encode()) + if not keep_sending: + send_string = None # send only once + msg = console.readline().strip() + if not msg: + continue + console_logger.debug(msg) + if success_message is None or success_message in msg: + break + if failure_message and failure_message in msg: + console.close() + fail = 'Failure message found in console: "%s". Expected: "%s"' % \ + (failure_message, success_message) + self.fail(fail) + def exec_command(self, command): """ Send a command to a console (appending CRLF characters), while logging @@ -112,7 +111,7 @@ def exec_command(self, command): :param command: the command to send :type command: str """ - _console_interaction(self, None, None, command + '\r') + self._console_interaction(None, None, command + '\r') def exec_command_and_wait_for_pattern(self, command, success_message, failure_message=None): @@ -125,7 +124,7 @@ def exec_command_and_wait_for_pattern(self, command, :param success_message: if this message appears, test succeeds :param failure_message: if this message appears, test fails """ - _console_interaction(self, success_message, failure_message, command + '\r') + self._console_interaction(success_message, failure_message, command + '\r') def interrupt_interactive_console_until_pattern(self, success_message, failure_message=None, @@ -147,7 +146,7 @@ def interrupt_interactive_console_until_pattern(self, success_message, :param interrupt_string: a string to send to the console before trying to read a new line """ - _console_interaction(self, success_message, failure_message, + self._console_interaction(success_message, failure_message, interrupt_string, True) def wait_for_console_pattern(self, success_message, failure_message=None, @@ -158,7 +157,7 @@ def wait_for_console_pattern(self, success_message, failure_message=None, :param success_message: if this message appears, test succeeds :param failure_message: if this message appears, test fails """ - _console_interaction(self, success_message, failure_message, None, vm=vm) + self._console_interaction(success_message, failure_message, None, vm=vm) class Test(avocado.Test): def _get_unique_tag_val(self, tag_name): -- 2.29.2