On 19/09/2025 11.55, Vladimir Sementsov-Ogievskiy wrote:
To be used in the next commit: that would be a test for TAP
networking, and it will need to setup TAP device.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
---
  tests/functional/qemu_test/decorators.py | 16 ++++++++++++++++
  1 file changed, 16 insertions(+)

diff --git a/tests/functional/qemu_test/decorators.py 
b/tests/functional/qemu_test/decorators.py
index c0d1567b14..4b332804ef 100644
--- a/tests/functional/qemu_test/decorators.py
+++ b/tests/functional/qemu_test/decorators.py
@@ -6,6 +6,7 @@
  import os
  import platform
  import resource
+import subprocess
  from unittest import skipIf, skipUnless
from .cmd import which
@@ -149,3 +150,18 @@ def skipLockedMemoryTest(locked_memory):
          ulimit_memory == resource.RLIM_INFINITY or ulimit_memory >= 
locked_memory * 1024,
          f'Test required {locked_memory} kB of available locked memory',
      )
+
+'''
+Decorator to skip execution of a test if passwordless
+sudo command is not available.
+'''
+def skipUnlessPasswordlessSudo():
+    proc = subprocess.run(["sudo", "-n", "/bin/true"],
+                          stdin=subprocess.PIPE,
+                          stdout=subprocess.PIPE,
+                          stderr=subprocess.STDOUT,
+                          universal_newlines=True,
+                          check=False)
+
+    return skipUnless(proc.returncode == 0,
+                      f'requires password-less sudo access: {proc.stdout}')

I'd maybe rather just call it "skipWithoutSudo" ... but anyway:

Reviewed-by: Thomas Huth <th...@redhat.com>


Reply via email to