tests/functional: skip tests if assets are not available

If downloading of assets has been disabled, then skip running a
test if the assets it has registered are not already downloaded.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20241217155953.3950506-31-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2024-12-17 15:59:51 +00:00 committed by Thomas Huth
parent c5be9dd32f
commit 6ff217c2d1
2 changed files with 18 additions and 1 deletions

View file

@ -65,6 +65,12 @@ class Asset:
def valid(self):
return self.cache_file.exists() and self._check(self.cache_file)
def fetchable(self):
return not os.environ.get("QEMU_TEST_NO_DOWNLOAD", False)
def available(self):
return self.valid() or self.fetchable()
def _wait_for_other_download(self, tmp_cache_file):
# Another thread already seems to download the asset, so wait until
# it is done, while also checking the size to see whether it is stuck
@ -103,7 +109,7 @@ class Asset:
self.cache_file, self.url)
return str(self.cache_file)
if os.environ.get("QEMU_TEST_NO_DOWNLOAD", False):
if not self.fetchable():
raise Exception("Asset cache is invalid and downloads disabled")
self.log.info("Downloading %s to %s...", self.url, self.cache_file)