From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: qemu-block@nongnu.org, "Cleber Rosa" <crosa@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Hanna Reitz" <hreitz@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Daniel Berrange" <berrange@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>, "John Snow" <jsnow@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>
Subject: [RFC PATCH 3/9] tests: install "qemu" namespace package into venv
Date: Thu, 12 May 2022 20:06:03 -0400 [thread overview]
Message-ID: <20220513000609.197906-4-jsnow@redhat.com> (raw)
In-Reply-To: <20220513000609.197906-1-jsnow@redhat.com>
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 | 5 ++++-
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, 10 insertions(+), 9 deletions(-)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 146aaa96a00..dbbf1ba535b 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -104,10 +104,13 @@ else
AVOCADO_CMDLINE_TAGS=$(addprefix -t , $(AVOCADO_TAGS))
endif
-$(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
+$(TESTS_VENV_DIR): $(TESTS_VENV_REQ) $(SRC_PATH)/python/setup.cfg
$(call quiet-command, \
$(PYTHON) -m venv $@, \
VENV, $@)
+ $(call quiet-command, \
+ $(TESTS_PYTHON) -m pip -q install \
+ -e "$(SRC_PATH)/python/", PIP, "$(SRC_PATH)/python/")
$(call quiet-command, \
$(TESTS_PYTHON) -m pip -q install -r $(TESTS_VENV_REQ), \
PIP, $(TESTS_VENV_REQ))
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
--
2.34.1
next prev parent reply other threads:[~2022-05-13 0:13 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-13 0:06 [RFC PATCH 0/9] tests: run python tests under the build/tests/venv environment John Snow
2022-05-13 0:06 ` [RFC PATCH 1/9] python: update for mypy 0.950 John Snow
2022-05-13 8:42 ` Paolo Bonzini
2022-05-13 14:09 ` John Snow
2022-05-13 0:06 ` [RFC PATCH 2/9] tests: add "TESTS_PYTHON" variable to Makefile John Snow
2022-05-13 8:23 ` Paolo Bonzini
2022-05-13 0:06 ` John Snow [this message]
2022-05-13 8:26 ` [RFC PATCH 3/9] tests: install "qemu" namespace package into venv Paolo Bonzini
2022-05-13 14:01 ` John Snow
2022-05-13 0:06 ` [RFC PATCH 4/9] tests: silence pip upgrade warnings during venv creation John Snow
2022-05-13 8:27 ` Paolo Bonzini
2022-05-13 14:02 ` John Snow
2022-05-13 0:06 ` [RFC PATCH 5/9] tests: use tests/venv to run basevm.py-based scripts John Snow
2022-05-13 8:33 ` Paolo Bonzini
2022-05-13 0:06 ` [RFC PATCH 6/9] tests: add check-venv as a dependency of check and check-block John Snow
2022-05-13 8:41 ` Paolo Bonzini
2022-05-13 14:12 ` John Snow
2022-05-13 15:34 ` Paolo Bonzini
2022-05-13 16:08 ` John Snow
2022-05-13 0:06 ` [RFC PATCH 7/9] tests: add check-venv to build-tcg-disabled CI recipe John Snow
2022-05-13 8:41 ` Paolo Bonzini
2022-05-13 0:06 ` [RFC PATCH 8/9] iotests: fix source directory location John Snow
2022-05-13 8:35 ` Paolo Bonzini
2022-05-13 0:06 ` [RFC PATCH 9/9] iotests: use tests/venv for running tests John Snow
2022-05-13 8:38 ` Paolo Bonzini
2022-05-13 14:38 ` John Snow
2022-05-13 15:33 ` Paolo Bonzini
2022-05-13 16:00 ` John Snow
2022-05-14 15:55 ` John Snow
2022-05-16 7:41 ` Paolo Bonzini
2022-05-17 23:51 ` John Snow
2022-05-18 10:38 ` Paolo Bonzini
2022-05-13 8:35 ` [RFC PATCH 0/9] tests: run python tests under the build/tests/venv environment Daniel P. Berrangé
2022-05-13 9:45 ` Paolo Bonzini
2022-05-13 10:29 ` Daniel P. Berrangé
2022-05-13 15:55 ` John Snow
2022-05-13 16:07 ` Daniel P. Berrangé
2022-05-13 16:49 ` Paolo Bonzini
2022-05-13 19:09 ` John Snow
2022-05-13 12:57 ` Kevin Wolf
2022-05-13 15:25 ` John Snow
2022-05-13 10:20 ` Paolo Bonzini
2022-05-13 15:39 ` John Snow
2022-05-13 16:07 ` Paolo Bonzini
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=20220513000609.197906-4-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=crosa@redhat.com \
--cc=f4bug@amsat.org \
--cc=hreitz@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).