[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 1/6] tests/acceptance: Extract QemuBaseTest from Test
From: |
Willian Rampazzo |
Subject: |
Re: [PATCH v4 1/6] tests/acceptance: Extract QemuBaseTest from Test |
Date: |
Mon, 1 Nov 2021 15:01:15 -0300 |
On Mon, Sep 27, 2021 at 1:31 PM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> The Avocado Test::fetch_asset() is handy to download artifacts
> before running tests. The current class is named Test but only
> tests system emulation. As we want to test user emulation,
> refactor the common code as QemuBaseTest.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/acceptance/avocado_qemu/__init__.py | 72 +++++++++++++----------
> 1 file changed, 41 insertions(+), 31 deletions(-)
>
> diff --git a/tests/acceptance/avocado_qemu/__init__.py
> b/tests/acceptance/avocado_qemu/__init__.py
> index 2c4fef3e149..8fcbed74849 100644
> --- a/tests/acceptance/avocado_qemu/__init__.py
> +++ b/tests/acceptance/avocado_qemu/__init__.py
> @@ -175,7 +175,7 @@ def exec_command_and_wait_for_pattern(test, command,
> """
> _console_interaction(test, success_message, failure_message, command +
> '\r')
>
> -class Test(avocado.Test):
> +class QemuBaseTest(avocado.Test):
> def _get_unique_tag_val(self, tag_name):
> """
> Gets a tag value, if unique for a key
> @@ -185,6 +185,46 @@ def _get_unique_tag_val(self, tag_name):
> return vals.pop()
> return None
>
> + def setUp(self):
> + self.arch = self.params.get('arch',
> + default=self._get_unique_tag_val('arch'))
> +
> + self.cpu = self.params.get('cpu',
> + default=self._get_unique_tag_val('cpu'))
> +
> + default_qemu_bin = pick_default_qemu_bin(arch=self.arch)
> + self.qemu_bin = self.params.get('qemu_bin',
> + default=default_qemu_bin)
> + if self.qemu_bin is None:
> + self.cancel("No QEMU binary defined or found in the build tree")
> +
> + def fetch_asset(self, name,
> + asset_hash=None, algorithm=None,
> + locations=None, expire=None,
> + find_only=False, cancel_on_missing=True):
> + return super(QemuBaseTest, self).fetch_asset(name,
It is preferable to use the PEP3135
(https://www.python.org/dev/peps/pep-3135/) when calling `super` as
linter are complaining about it:
return super().fetch_asset(name,
And after reading through the patch I noticed it was a method move,
so, feel free to take the suggestion or ignore it for now.
> + asset_hash=asset_hash,
> + algorithm=algorithm,
> + locations=locations,
> + expire=expire,
> + find_only=find_only,
> + cancel_on_missing=cancel_on_missing)
> +
> +
> +class Test(QemuBaseTest):
> + """Facilitates system emulation tests.
> +
> + TODO: Rename this class as `QemuSystemTest`.
> + """
> +
> + def setUp(self):
> + self._vms = {}
> +
> + super(Test, self).setUp()
Same from previous comment:
super().setUp()
> +
> + self.machine = self.params.get('machine',
> +
> default=self._get_unique_tag_val('machine'))
> +
> def require_accelerator(self, accelerator):
> """
> Requires an accelerator to be available for the test to continue
> @@ -207,24 +247,6 @@ def require_accelerator(self, accelerator):
> self.cancel("%s accelerator does not seem to be "
> "available" % accelerator)
>
> - def setUp(self):
> - self._vms = {}
> -
> - self.arch = self.params.get('arch',
> - default=self._get_unique_tag_val('arch'))
> -
> - self.cpu = self.params.get('cpu',
> - default=self._get_unique_tag_val('cpu'))
> -
> - self.machine = self.params.get('machine',
> -
> default=self._get_unique_tag_val('machine'))
> -
> - default_qemu_bin = pick_default_qemu_bin(arch=self.arch)
> - self.qemu_bin = self.params.get('qemu_bin',
> - default=default_qemu_bin)
> - if self.qemu_bin is None:
> - self.cancel("No QEMU binary defined or found in the build tree")
> -
> def _new_vm(self, name, *args):
> self._sd = tempfile.TemporaryDirectory(prefix="avo_qemu_sock_")
> vm = QEMUMachine(self.qemu_bin, base_temp_dir=self.workdir,
> @@ -277,18 +299,6 @@ def tearDown(self):
> vm.shutdown()
> self._sd = None
>
> - def fetch_asset(self, name,
> - asset_hash=None, algorithm=None,
> - locations=None, expire=None,
> - find_only=False, cancel_on_missing=True):
> - return super(Test, self).fetch_asset(name,
> - asset_hash=asset_hash,
> - algorithm=algorithm,
> - locations=locations,
> - expire=expire,
> - find_only=find_only,
> - cancel_on_missing=cancel_on_missing)
> -
>
> class LinuxSSHMixIn:
> """Contains utility methods for interacting with a guest via SSH."""
> --
> 2.31.1
>
Except for one (or two, if you consider the first) small comment,
looks good to me, so
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
- Re: [PATCH v4 1/6] tests/acceptance: Extract QemuBaseTest from Test,
Willian Rampazzo <=