tests: install "qemu" namespace package into venv
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> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220526000921.1581503-7-jsnow@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5a6f1199cb
commit
0e7647aa8a
@ -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 $@)
|
||||
|
||||
|
@ -21,6 +21,11 @@ import avocado
|
||||
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 @@ if os.path.islink(os.path.dirname(os.path.dirname(__file__))):
|
||||
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):
|
||||
"""
|
||||
|
@ -22,7 +22,6 @@ import os
|
||||
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
|
||||
|
@ -11,7 +11,6 @@ Check compatibility of virtio device types
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user