[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/2] tests/functional: Fix broken decorators with lamda functi
From: |
Thomas Huth |
Subject: |
[PATCH v2 2/2] tests/functional: Fix broken decorators with lamda functions |
Date: |
Wed, 22 Jan 2025 14:43:14 +0100 |
The decorators that use a lambda function are currently broken
and do not properly skip the test if the condition is not met.
Using "return skipUnless(lambda: ...)" does not work as expected.
To fix it, rewrite the decorators without lambda, it's simpler
that way anyway.
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/functional/qemu_test/decorators.py | 44 +++++++++++-------------
1 file changed, 21 insertions(+), 23 deletions(-)
diff --git a/tests/functional/qemu_test/decorators.py
b/tests/functional/qemu_test/decorators.py
index 08f58f6b40..3d9c02fd59 100644
--- a/tests/functional/qemu_test/decorators.py
+++ b/tests/functional/qemu_test/decorators.py
@@ -17,15 +17,14 @@
@skipIfMissingCommands("mkisofs", "losetup")
'''
def skipIfMissingCommands(*args):
- def has_cmds(cmdlist):
- for cmd in cmdlist:
- if not which(cmd):
- return False
- return True
-
- return skipUnless(lambda: has_cmds(args),
- 'required command(s) "%s" not installed' %
- ", ".join(args))
+ has_cmds = True
+ for cmd in args:
+ if not which(cmd):
+ has_cmds = False
+ break
+
+ return skipUnless(has_cmds, 'required command(s) "%s" not installed' %
+ ", ".join(args))
'''
Decorator to skip execution of a test if the current
@@ -36,9 +35,9 @@ def has_cmds(cmdlist):
@skipIfNotMachine("x86_64", "aarch64")
'''
def skipIfNotMachine(*args):
- return skipUnless(lambda: platform.machine() in args,
- 'not running on one of the required machine(s) "%s"' %
- ", ".join(args))
+ return skipUnless(platform.machine() in args,
+ 'not running on one of the required machine(s) "%s"' %
+ ", ".join(args))
'''
Decorator to skip execution of flaky tests, unless
@@ -95,14 +94,13 @@ def skipBigDataTest():
@skipIfMissingImports("numpy", "cv2")
'''
def skipIfMissingImports(*args):
- def has_imports(importlist):
- for impname in importlist:
- try:
- importlib.import_module(impname)
- except ImportError:
- return False
- return True
-
- return skipUnless(lambda: has_imports(args),
- 'required import(s) "%s" not installed' %
- ", ".join(args))
+ has_imports = True
+ for impname in args:
+ try:
+ importlib.import_module(impname)
+ except ImportError:
+ has_imports = False
+ break
+
+ return skipUnless(has_imports, 'required import(s) "%s" not installed' %
+ ", ".join(args))
--
2.48.1