linux: Postpone importing libraries for tests

They're not needed and might not be available when we're trying to list
the included tests.
This commit is contained in:
Bastien Nocera 2021-09-07 15:34:44 +02:00
parent b68fe26fc9
commit bdd2711c2b

View file

@ -26,30 +26,12 @@ import unittest
import time
from packaging.version import parse as parse_version
try:
import gi
from gi.repository import GLib
from gi.repository import Gio
gi.require_version('UPowerGlib', '1.0')
from gi.repository import UPowerGlib
except ImportError as e:
sys.stderr.write('Skipping tests, PyGobject not available for Python 3, or missing GI typelibs: %s\n' % str(e))
sys.exit(77)
try:
gi.require_version('UMockdev', '1.0')
from gi.repository import UMockdev
except ImportError:
sys.stderr.write('Skipping tests, umockdev not available (https://github.com/martinpitt/umockdev)\n')
sys.exit(77)
try:
import dbusmock
except ImportError:
sys.stderr.write('Skipping tests, python-dbusmock not available (http://pypi.python.org/pypi/python-dbusmock).\n')
sys.exit(77)
UP = 'org.freedesktop.UPower'
UP_DEVICE = 'org.freedesktop.UPower.Device'
UP_DISPLAY_OBJECT_PATH = '/org/freedesktop/UPower/devices/DisplayDevice'
@ -1947,6 +1929,23 @@ class Tests(dbusmock.DBusTestCase):
return prop_str
if __name__ == '__main__':
try:
import gi
from gi.repository import GLib
from gi.repository import Gio
gi.require_version('UPowerGlib', '1.0')
from gi.repository import UPowerGlib
except ImportError as e:
sys.stderr.write('Skipping tests, PyGobject not available for Python 3, or missing GI typelibs: %s\n' % str(e))
sys.exit(77)
try:
gi.require_version('UMockdev', '1.0')
from gi.repository import UMockdev
except ImportError:
sys.stderr.write('Skipping tests, umockdev not available (https://github.com/martinpitt/umockdev)\n')
sys.exit(77)
# run ourselves under umockdev
if 'umockdev' not in os.environ.get('LD_PRELOAD', ''):
os.execvp('umockdev-wrapper', ['umockdev-wrapper'] + sys.argv)