[pygobject] tests: always call require_version; add TEST_GTK_VERSION env var



commit c3159accf3faa2bd804ac22ec7ac93e62b158a3e
Author: Christoph Reiter <creiter src gnome org>
Date:   Sun Apr 2 13:17:36 2017 +0200

    tests: always call require_version; add TEST_GTK_VERSION env var
    
    Set the versions in runtests.py instead of repeating it in every
    test module.
    
    Add a new TEST_GTK_VERSION env var which defaults to "3.0".
    Allows to run tests with gtk4 using "make check TEST_GTK_VERSION=4.0"

 tests/compat_test_pygtk.py    |    6 ------
 tests/runtests.py             |   26 ++++++++++++++++++++++++++
 tests/test_atoms.py           |    7 +++----
 tests/test_overrides_gtk.py   |    8 +++-----
 tests/test_overrides_pango.py |    7 +------
 tests/test_properties.py      |    6 +-----
 tests/test_repository.py      |    4 ----
 7 files changed, 34 insertions(+), 30 deletions(-)
---
diff --git a/tests/compat_test_pygtk.py b/tests/compat_test_pygtk.py
index 636b0e4..f27027a 100644
--- a/tests/compat_test_pygtk.py
+++ b/tests/compat_test_pygtk.py
@@ -4,13 +4,7 @@
 import unittest
 import base64
 
-import gi
-
 try:
-    try:
-        gi.require_version("Gtk", "3.0")
-    except ValueError as e:
-        raise ImportError(e)
     from gi.repository import Gtk
     from gi.repository import Pango
     from gi.repository import Atk
diff --git a/tests/runtests.py b/tests/runtests.py
index 92bed2e..fda4dd1 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -52,6 +52,32 @@ repo = GIRepository.Repository.get_default()
 repo.prepend_library_path(os.path.join(tests_builddir, ".libs"))
 repo.prepend_search_path(tests_builddir)
 
+
+def try_require_version(namespace, version):
+    try:
+        gi.require_version(namespace, version)
+    except ValueError:
+        # prevent tests from running with the wrong version
+        sys.modules["gi.repository." + namespace] = None
+
+
+# Optional
+try_require_version("Gtk", os.environ.get("TEST_GTK_VERSION", "3.0"))
+try_require_version("Gdk", os.environ.get("TEST_GTK_VERSION", "3.0"))
+try_require_version("GdkPixbuf", "2.0")
+try_require_version("Pango", "1.0")
+try_require_version("PangoCairo", "1.0")
+try_require_version("Atk", "1.0")
+
+# Required
+gi.require_versions({
+    "GIMarshallingTests": "1.0",
+    "Regress": "1.0",
+    "GLib": "2.0",
+    "Gio": "2.0",
+    "GObject": "2.0",
+})
+
 # Load tests.
 if 'TEST_NAMES' in os.environ:
     names = os.environ['TEST_NAMES'].split()
diff --git a/tests/test_atoms.py b/tests/test_atoms.py
index e6c8aba..02b0a1d 100644
--- a/tests/test_atoms.py
+++ b/tests/test_atoms.py
@@ -3,12 +3,11 @@ import sys
 import unittest
 
 try:
-    import gi
-    gi.require_version('Gtk', '3.0')
     from gi.repository import Gtk, Atk, Gdk
-    (Atk, Gdk)  # pyflakes
-except (ValueError, ImportError):
+except ImportError:
     Gdk = None
+    Atk = None
+    Gtk = None
 
 from helper import capture_glib_deprecation_warnings
 
diff --git a/tests/test_overrides_gtk.py b/tests/test_overrides_gtk.py
index 591391e..9a8b4fa 100644
--- a/tests/test_overrides_gtk.py
+++ b/tests/test_overrides_gtk.py
@@ -12,20 +12,18 @@ from compathelper import _unicode, _bytes
 from helper import ignore_gi_deprecation_warnings, capture_glib_warnings, \
     capture_glib_deprecation_warnings
 
-import gi
 import gi.overrides
 import gi.types
 from gi.repository import GLib, GObject
 
 try:
-    gi.require_version('Gtk', '3.0')
-    gi.require_version('GdkPixbuf', '2.0')
     from gi.repository import Gtk, GdkPixbuf, Gdk
-    Gtk  # pyflakes
     PyGTKDeprecationWarning = Gtk.PyGTKDeprecationWarning
-except (ValueError, ImportError):
+except ImportError:
     Gtk = None
     PyGTKDeprecationWarning = None
+    GdkPixbuf = None
+    Gdk = None
 
 
 @contextlib.contextmanager
diff --git a/tests/test_overrides_pango.py b/tests/test_overrides_pango.py
index 5177213..5c09a6a 100644
--- a/tests/test_overrides_pango.py
+++ b/tests/test_overrides_pango.py
@@ -4,14 +4,9 @@
 import unittest
 
 try:
-    import gi
-    gi.require_version('Pango', '1.0')
-    gi.require_version('PangoCairo', '1.0')
     from gi.repository import Pango
     from gi.repository import PangoCairo
-    Pango
-    PangoCairo
-except (ValueError, ImportError):
+except ImportError:
     Pango = None
     PangoCairo = None
 
diff --git a/tests/test_properties.py b/tests/test_properties.py
index 08af7a4..3fb5749 100644
--- a/tests/test_properties.py
+++ b/tests/test_properties.py
@@ -8,7 +8,6 @@ import types
 import unittest
 import tempfile
 
-import gi
 from gi.repository import GObject
 from gi.repository.GObject import ParamFlags, GType, new
 from gi.repository.GObject import \
@@ -24,12 +23,9 @@ from gi.repository.GLib import \
 
 from gi.repository import Gio
 from gi.repository import GLib
-gi.require_version('GIMarshallingTests', '1.0')
 from gi.repository import GIMarshallingTests
-from gi import _propertyhelper as propertyhelper
-
-gi.require_version('Regress', '1.0')
 from gi.repository import Regress
+from gi import _propertyhelper as propertyhelper
 
 if sys.version_info < (3, 0):
     TEST_UTF8 = "\xe2\x99\xa5"
diff --git a/tests/test_repository.py b/tests/test_repository.py
index 1cd440e..d7b6d2e 100644
--- a/tests/test_repository.py
+++ b/tests/test_repository.py
@@ -23,10 +23,6 @@
 import unittest
 import collections
 
-import gi
-
-gi.require_version('GIRepository', '2.0')
-
 import gi._gi as GIRepository
 from gi.module import repository as repo
 from gi.repository import GObject


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]