All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: John Snow <jsnow@redhat.com>, qemu-devel@nongnu.org
Cc: "Alex Bennée" <alex.bennee@linaro.org>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Daniel Berrange" <berrange@redhat.com>,
	"Beraldo Leal" <bleal@redhat.com>
Subject: Re: [PATCH 6/9] tests: install "qemu" namespace package into venv
Date: Thu, 26 May 2022 14:15:08 +0200	[thread overview]
Message-ID: <fdba616b-227a-8b75-dcb8-a7d168b806e1@redhat.com> (raw)
In-Reply-To: <20220526000921.1581503-7-jsnow@redhat.com>

On 5/26/22 02:09, John Snow wrote:
> This patch adds the "qemu" namespace package to the $build/tests/venv
> directory. It does so in "editable" mode, which means that changes to
> the source python directory will actively be reflected by the venv.
> 
> This patch also then removes any sys.path hacking from the avocado test
> scripts directly. By doing this, the environment of where to find these
> packages is managed entirely by the virtual environment and not by the
> scripts themselves.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>   tests/Makefile.include                 |  1 +
>   tests/avocado/avocado_qemu/__init__.py | 11 +++++------
>   tests/avocado/virtio_check_params.py   |  1 -
>   tests/avocado/virtio_version.py        |  1 -
>   tests/requirements.txt                 |  1 +
>   5 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 052d7f56e9a..d13a3403e9f 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -110,6 +110,7 @@ quiet-venv-pip = $(quiet-@)$(call quiet-command-run, \
>   
>   $(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
>   	$(call quiet-command, $(PYTHON) -m venv $@, VENV, $@)
> +	$(call quiet-venv-pip,install -e "$(SRC_PATH)/python/")
>   	$(call quiet-venv-pip,install -r $(TESTS_VENV_REQ))
>   	$(call quiet-command, touch $@)
>   
> diff --git a/tests/avocado/avocado_qemu/__init__.py b/tests/avocado/avocado_qemu/__init__.py
> index 39f15c1d518..b656a70c55b 100644
> --- a/tests/avocado/avocado_qemu/__init__.py
> +++ b/tests/avocado/avocado_qemu/__init__.py
> @@ -21,6 +21,11 @@
>   from avocado.utils import cloudinit, datadrainer, process, ssh, vmimage
>   from avocado.utils.path import find_command
>   
> +from qemu.machine import QEMUMachine
> +from qemu.utils import (get_info_usernet_hostfwd_port, kvm_available,
> +                        tcg_available)
> +
> +
>   #: The QEMU build root directory.  It may also be the source directory
>   #: if building from the source dir, but it's safer to use BUILD_DIR for
>   #: that purpose.  Be aware that if this code is moved outside of a source
> @@ -35,12 +40,6 @@
>   else:
>       SOURCE_DIR = BUILD_DIR
>   
> -sys.path.append(os.path.join(SOURCE_DIR, 'python'))
> -
> -from qemu.machine import QEMUMachine
> -from qemu.utils import (get_info_usernet_hostfwd_port, kvm_available,
> -                        tcg_available)
> -
>   
>   def has_cmd(name, args=None):
>       """
> diff --git a/tests/avocado/virtio_check_params.py b/tests/avocado/virtio_check_params.py
> index e869690473a..4093da8a674 100644
> --- a/tests/avocado/virtio_check_params.py
> +++ b/tests/avocado/virtio_check_params.py
> @@ -22,7 +22,6 @@
>   import re
>   import logging
>   
> -sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
>   from qemu.machine import QEMUMachine
>   from avocado_qemu import QemuSystemTest
>   from avocado import skip
> diff --git a/tests/avocado/virtio_version.py b/tests/avocado/virtio_version.py
> index 208910bb844..c84e48813a1 100644
> --- a/tests/avocado/virtio_version.py
> +++ b/tests/avocado/virtio_version.py
> @@ -11,7 +11,6 @@
>   import sys
>   import os
>   
> -sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
>   from qemu.machine import QEMUMachine
>   from avocado_qemu import QemuSystemTest
>   
> diff --git a/tests/requirements.txt b/tests/requirements.txt
> index a21b59b4439..0ba561b6bdf 100644
> --- a/tests/requirements.txt
> +++ b/tests/requirements.txt
> @@ -1,5 +1,6 @@
>   # Add Python module requirements, one per line, to be installed
>   # in the tests/venv Python virtual environment. For more info,
>   # refer to: https://pip.pypa.io/en/stable/user_guide/#id1
> +# Note that qemu.git/python/ is always implicitly installed.
>   avocado-framework==88.1
>   pycdlib==1.11.0

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>



  reply	other threads:[~2022-05-26 12:18 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-26  0:09 [PATCH 0/9] tests, python: prepare to expand usage of test venv John Snow
2022-05-26  0:09 ` [PATCH 1/9] python: update for mypy 0.950 John Snow
2022-05-26  0:09 ` [PATCH 2/9] tests: add "TESTS_PYTHON" variable to Makefile John Snow
2022-05-26  0:09 ` [PATCH 3/9] tests: use python3 as the python executable name John Snow
2022-05-26 12:16   ` Paolo Bonzini
2022-05-26  0:09 ` [PATCH 4/9] tests: silence pip upgrade warnings during venv creation John Snow
2022-05-26 12:16   ` Paolo Bonzini
2022-05-26  0:09 ` [PATCH 5/9] tests: add quiet-venv-pip macro John Snow
2022-05-26 12:15   ` Paolo Bonzini
2022-05-26 14:17     ` John Snow
2022-05-26 19:54       ` Paolo Bonzini
2022-05-26 12:16   ` Paolo Bonzini
2022-05-26  0:09 ` [PATCH 6/9] tests: install "qemu" namespace package into venv John Snow
2022-05-26 12:15   ` Paolo Bonzini [this message]
2022-05-26  0:09 ` [PATCH 7/9] tests: use tests/venv to run basevm.py-based scripts John Snow
2022-05-26  0:09 ` [PATCH 8/9] tests: add python3-venv to debian10.docker John Snow
2022-05-26 12:14   ` Paolo Bonzini
2022-05-30  7:33   ` Thomas Huth
2022-05-31 18:28     ` John Snow
2022-06-01  7:29       ` Thomas Huth
2022-06-02 17:44         ` John Snow
2022-05-26  0:09 ` [PATCH 9/9] tests: run 'device-crash-test' from tests/venv John Snow
2022-05-26 12:14   ` Paolo Bonzini
2022-05-26 14:14     ` John Snow
2022-05-26 14:34 ` [PATCH 0/9] tests, python: prepare to expand usage of test venv John Snow
2022-06-01 10:06   ` Paolo Bonzini
2022-05-27 14:27 ` John Snow
2022-06-01 10:06   ` Paolo Bonzini
2022-06-02 17:43     ` John Snow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fdba616b-227a-8b75-dcb8-a7d168b806e1@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=bleal@redhat.com \
    --cc=crosa@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=jsnow@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.