tests/functional: Add a function for extracting files from an archive
Some Avocado-based tests use the "archive" module from avocado.utils to extract files from an archive. To be able to use these tests without Avocado, we have to provide our own function for extracting files. Fortunately, there is already the tarfile module that will provide us with this functionality, so let's just add a nice wrapper function around that. Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20240830133841.142644-19-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
4c0a2df81c
commit
850a1951b7
21
tests/functional/qemu_test/utils.py
Normal file
21
tests/functional/qemu_test/utils.py
Normal file
@ -0,0 +1,21 @@
|
||||
# Utilities for python-based QEMU tests
|
||||
#
|
||||
# Copyright 2024 Red Hat, Inc.
|
||||
#
|
||||
# Authors:
|
||||
# Thomas Huth <thuth@redhat.com>
|
||||
#
|
||||
# This work is licensed under the terms of the GNU GPL, version 2 or
|
||||
# later. See the COPYING file in the top-level directory.
|
||||
|
||||
import tarfile
|
||||
|
||||
def archive_extract(archive, dest_dir, member=None):
|
||||
with tarfile.open(archive) as tf:
|
||||
if hasattr(tarfile, 'data_filter'):
|
||||
tf.extraction_filter = getattr(tarfile, 'data_filter',
|
||||
(lambda member, path: member))
|
||||
if member:
|
||||
tf.extract(member=member, path=dest_dir)
|
||||
else:
|
||||
tf.extractall(path=dest_dir)
|
Loading…
x
Reference in New Issue
Block a user