On Mon, Dec 02, 2024 at 11:20:19AM +0100, Thomas Huth wrote: > On 29/11/2024 18.31, Daniel P. Berrangé wrote: > > There are many types of archives that the tests deal with, and > > 'archive_extract' suggests it can cope with any, rather than only > > tar files. Rename the existing method to 'tar_extract' and add a > > new method that can dynamically extract any zip, tar or cpio file > > based on file extension. > > > > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > > --- > > tests/functional/qemu_test/utils.py | 31 +++++++++++++++++++++++++++-- > > 1 file changed, 29 insertions(+), 2 deletions(-) > > > > diff --git a/tests/functional/qemu_test/utils.py > > b/tests/functional/qemu_test/utils.py > > index bafe7fb80e..8c1df8f8c2 100644 > > --- a/tests/functional/qemu_test/utils.py > > +++ b/tests/functional/qemu_test/utils.py > > @@ -14,6 +14,7 @@ > > import shutil > > import subprocess > > import tarfile > > +import zipfile > > from .cmd import run_cmd > > @@ -38,7 +39,33 @@ def image_pow2ceil_expand(path): > > with open(path, 'ab+') as fd: > > fd.truncate(size_aligned) > > -def archive_extract(archive, dest_dir, member=None): > > +def archive_extract(archive, dest_dir, format=None, member=None): > > Why not doing "if not format: format = guess_archive_format(archive)" here? > Otherwise this helper function is rather useless - if you have to know the > format, you could directly call the appropriate function anyway.
That's how I had things at first, but then I hit the problem that about 80% of the files we're extracting are cached assets, and the asset filenames are just a hash digest, so there's no file extension to query. I guess I could make this work by pushing the Asset object instance right down into this method, rather than converting from Asset -> filename in the caller. 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 :|