On Thu, Jul 11, 2024 at 01:55:45PM +0200, Thomas Huth wrote: > 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. > > Signed-off-by: Thomas Huth <th...@redhat.com> > --- > tests/pytest/qemu_pytest/utils.py | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > create mode 100644 tests/pytest/qemu_pytest/utils.py > > diff --git a/tests/pytest/qemu_pytest/utils.py > b/tests/pytest/qemu_pytest/utils.py > new file mode 100644 > index 0000000000..4eb5e5d5e5 > --- /dev/null > +++ b/tests/pytest/qemu_pytest/utils.py > @@ -0,0 +1,21 @@ > +# Utilities for python-based QEMU tests > +# > +# Copyright 2024 Red Hat, Inc. > +# > +# Authors: > +# Thomas Huth <th...@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'):
Not convinced this is still needed. The python docs don't say anything about 'data_filter' being introduced after 3.0, so can likely assume it always exists. > + 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) > -- > 2.45.2 > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|