From 64e07ba0b2a4acb84f61e5688d3537f4a38e09e6 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Mon, 10 Jan 2005 16:25:46 +0000 Subject: Make testsuite work and do things the way they were supposed to be done * tests/Makefile.am: * tests/common.py: * tests/runtests.py: * tests/test_thread.py: Make testsuite work and do things the way they were supposed to be done from the beginning. --- tests/common.py | 74 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 15 deletions(-) (limited to 'tests/common.py') diff --git a/tests/common.py b/tests/common.py index 237e6f2..9429579 100644 --- a/tests/common.py +++ b/tests/common.py @@ -1,23 +1,67 @@ import os import sys -if not os.environ.has_key('DIST_CHECK'): - sys.path.insert(0, '..') - sys.path.insert(0, '../gobject') +def importModules(buildDir, srcDir): + # Be very careful when you change this code, it's + # fragile and the order is really significant + + # ltihooks + sys.path.insert(0, srcDir) + # atk, pango + sys.path.insert(0, buildDir) + # gobject + sys.path.insert(0, os.path.join(buildDir, 'gobject')) + # _gtk, keysyms, glade + sys.path.insert(0, os.path.join(buildDir, 'gtk')) + # testhelper + sys.path.insert(0, os.path.join(buildDir, 'tests')) -import ltihooks + import ltihooks + + gobject = importModule('gobject', buildDir, 'gobject/gobject.la') + atk = importModule('atk', buildDir) + pango = importModule('pango', buildDir) + gtk = importModule('gtk', buildDir, 'gtk') + gdk = importModule('gtk.gdk', buildDir, '_gdk.la') + try: + glade = importModule('gtk.glade', buildDir, 'glade.la') + except ImportError: + glade = None + + testhelper = importModule('testhelper', '.') + + ltihooks.uninstall() + del ltihooks + + globals().update(locals()) + + os.environ['PYGTK_USE_GIL_STATE_API'] = '' + gobject.threads_init() -import gobject -import atk -import pango +def importModule(module, directory, name=None): + global isDistCheck -import gtk -from gtk import gdk -try: - from gtk import glade -except ImportError: - glade = None + if '.' in module: + fromlist = '.'.join(module.split('.')[:-1]) + else: + fromlist = None -import testhelper + if not name: + name = module + '.la' -ltihooks.uninstall() + obj = __import__(module, {}, {}, fromlist) + if hasattr(obj, '__file__'): + location = obj.__file__ + else: + package = __import__(fromlist) + location = os.path.join(package.__file__, name) + + current = os.getcwd() + expected = os.path.abspath(os.path.join(current, location)) + current = os.path.abspath(location) + if current != expected: + raise AssertionError('module %s imported from wrong location. Expected %s, got %s' % ( + module, expected, current)) + + return obj + -- cgit