testsuite: Fix introspection test on Windows

...when we are using Python 3.8.x or later.  Python 3.8.x or later on Windows
require one to call os.add_dll_directory() on every directory that contains
dependent non-system DLLs of a module that are not bundled/installed with the
module.

Since we are very likely running programs that rely on dependent items in
%PATH%, make things easier for people by calling os.add_dll_directory() on
all the valid paths in %PATH% in api.py, so that the test will run
successfully on Windows with Python 3.8.x or later.
This commit is contained in:
Chun-wei Fan 2022-04-25 15:28:44 +08:00
parent 3af4d53945
commit 3471c22f52

View File

@ -1,6 +1,19 @@
#! /usr/bin/env python3
import os
import sys
# Python 3.8.x or later on Windows require os.add_dll_directory()
# to be called on every directory that contains the required
# non-bundled, non-system DLLs of a module so that the module can
# be loaded successfully by Python. Make things easiler for people
# by calling os.add_dll_directory() on the valid paths in %PATH%.
if hasattr(os, 'add_dll_directory'):
paths = os.environ['PATH'].split(os.pathsep)
for path in paths:
if path != '' and os.path.isdir(path):
os.add_dll_directory(path)
import gi
gi.require_version('Gtk', '4.0')