[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 30/32] tests/functional: skip tests if assets are not availabl
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v3 30/32] tests/functional: skip tests if assets are not available |
Date: |
Tue, 17 Dec 2024 15:59:51 +0000 |
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>
---
tests/functional/qemu_test/asset.py | 8 +++++++-
tests/functional/qemu_test/testcase.py | 11 +++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/tests/functional/qemu_test/asset.py
b/tests/functional/qemu_test/asset.py
index c5d3e73c4b..39832b2587 100644
--- a/tests/functional/qemu_test/asset.py
+++ b/tests/functional/qemu_test/asset.py
@@ -65,6 +65,12 @@ def _check(self, cache_file):
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 @@ def fetch(self):
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)
diff --git a/tests/functional/qemu_test/testcase.py
b/tests/functional/qemu_test/testcase.py
index aa6c9c0d64..869f3949fe 100644
--- a/tests/functional/qemu_test/testcase.py
+++ b/tests/functional/qemu_test/testcase.py
@@ -184,6 +184,14 @@ def scratch_file(self, *args):
def log_file(self, *args):
return str(Path(self.outputdir, *args))
+ def assets_available(self):
+ for name, asset in vars(self.__class__).items():
+ if name.startswith("ASSET_") and type(asset) == Asset:
+ if not asset.available():
+ self.log.debug(f"Asset {asset.url} not available")
+ return False
+ return True
+
def setUp(self, bin_prefix):
self.assertIsNotNone(self.qemu_bin, 'QEMU_TEST_QEMU_BINARY must be
set')
self.arch = self.qemu_bin.split('-')[-1]
@@ -209,6 +217,9 @@ def setUp(self, bin_prefix):
self.machinelog.setLevel(logging.DEBUG)
self.machinelog.addHandler(self._log_fh)
+ if not self.assets_available():
+ self.skipTest('One or more assets is not available')
+
def tearDown(self):
if "QEMU_TEST_KEEP_SCRATCH" not in os.environ:
shutil.rmtree(self.workdir)
--
2.46.0
- [PATCH v3 23/32] tests/functional: convert tests to new archive_extract helper, (continued)
- [PATCH v3 23/32] tests/functional: convert tests to new archive_extract helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 15/32] tests/functional: remove redundant 'rmtree' call, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 19/32] tests/functional: add common deb_extract helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 24/32] tests/functional: add a generalized uncompress helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 21/32] tests/functional: add a generalized archive_extract, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 25/32] tests/functional: add 'uncompress' to QemuBaseTest, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 26/32] tests/functional: convert tests to new uncompress helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 27/32] tests/functional: drop back compat imports from utils.py, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 28/32] tests/functional: replace 'run_cmd' with subprocess helpers, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 29/32] tests/functional: remove now unused 'run_cmd' helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 30/32] tests/functional: skip tests if assets are not available,
Daniel P . Berrangé <=
- [PATCH v3 32/32] MAINTAINERS: add myself as reviewer for functional test suite, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 31/32] tests/functional: ignore errors when caching assets, except for 404, Daniel P . Berrangé, 2024/12/17