From 3dc59431348925947beaf9113ecc11b3bed60abf Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 23 Aug 2022 15:17:32 +0200 Subject: [PATCH 1/3] tests: skip test in "test-client.py" if the pexepect dependency is not available (cherry picked from commit 8959083784350d6594ab600e8b36345d622e9636) --- src/tests/client/test-client.py | 41 ++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/src/tests/client/test-client.py b/src/tests/client/test-client.py index 6b2c51f526..7204987e31 100755 --- a/src/tests/client/test-client.py +++ b/src/tests/client/test-client.py @@ -95,16 +95,6 @@ ENV_NM_TEST_UBSAN_OPTIONS = "NM_TEST_UBSAN_OPTIONS" import sys -try: - import gi - from gi.repository import GLib - - gi.require_version("NM", "1.0") - from gi.repository import NM -except Exception as e: - GLib = None - NM = None - import os import errno import unittest @@ -120,7 +110,27 @@ import random import dbus.service import dbus.mainloop.glib import io -import pexpect + +moduleNotFoundError = ModuleNotFoundError if sys.version_info[0] >= 3 else ImportError + +import gi + +try: + from gi.repository import GLib +except ImportError as e: + GLib = None + +try: + gi.require_version("NM", "1.0") + from gi.repository import NM +except ImportError as e: + NM = None + +try: + import pexpect +except moduleNotFoundError: + pexpect = None + ############################################################################### @@ -1206,6 +1216,14 @@ class TestNmcli(NmTestBase): % (",".join(skip_test_for_l10n_diff)) ) + def skip_without_pexpect(func): + def f(self): + if pexpect is None: + raise unittest.SkipTest("pexpect not available") + func(self) + + return f + def nm_test(func): def f(self): self.srv = NMStubServer(self._testMethodName) @@ -1842,6 +1860,7 @@ class TestNmcli(NmTestBase): extra_env=no_dbus_env, ) + @skip_without_pexpect @nm_test def test_ask_mode(self): nmc = self.call_nmcli_pexpect(["--ask", "c", "add"]) From d6d76f900f781d678f5fda68fe6b1685a561a94b Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 24 Aug 2022 14:00:57 +0200 Subject: [PATCH 2/3] tests: fix "test-client.py" ignoring missing "NM" module Fixes: 895908378435 ('tests: skip test in "test-client.py" if the pexepect dependency is not available') (cherry picked from commit f7e484c8eda484bed8ce98546fc1da6a86d91a26) --- src/tests/client/test-client.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/tests/client/test-client.py b/src/tests/client/test-client.py index 7204987e31..68cc08e86d 100755 --- a/src/tests/client/test-client.py +++ b/src/tests/client/test-client.py @@ -117,14 +117,18 @@ import gi try: from gi.repository import GLib -except ImportError as e: +except ImportError: GLib = None try: gi.require_version("NM", "1.0") - from gi.repository import NM -except ImportError as e: +except ValueError: NM = None +else: + try: + from gi.repository import NM + except ImportError: + NM = None try: import pexpect From 36ad9855d1a6f252a62b4723e4c04ddf537c387c Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 26 Aug 2022 00:00:01 +0200 Subject: [PATCH 3/3] tests: fix "test-client.py" for early python3 versions ModuleNotFoundError was only introduced in later python 3 versions. Use just "ImportError", which is the parent class anyway. Fixes: f7e484c8eda4 ('tests: fix "test-client.py" ignoring missing "NM" module') (cherry picked from commit 9902373c6d984f3a72a6dc5f0b6ea1cf3a09f18d) --- src/tests/client/test-client.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/tests/client/test-client.py b/src/tests/client/test-client.py index 68cc08e86d..85a09ad25c 100755 --- a/src/tests/client/test-client.py +++ b/src/tests/client/test-client.py @@ -111,8 +111,6 @@ import dbus.service import dbus.mainloop.glib import io -moduleNotFoundError = ModuleNotFoundError if sys.version_info[0] >= 3 else ImportError - import gi try: @@ -132,7 +130,7 @@ else: try: import pexpect -except moduleNotFoundError: +except ImportError: pexpect = None