From 8a83033816ee14df113762935bbfadb876b51a54 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Wed, 27 Aug 2008 07:55:06 +0000 Subject: [PATCH] add some options to runtests.py to be able to tune verbosity and wether we want to run tests that require X or not --- test/lib/__init__.py | 13 +++++++++++-- test/lib/mocks.py | 14 ++++++++++++-- test/runtests.py | 45 +++++++++++++++++++++++++++++++++++++++----- 3 files changed, 63 insertions(+), 9 deletions(-) diff --git a/test/lib/__init__.py b/test/lib/__init__.py index 3a1300e12..e439acf26 100644 --- a/test/lib/__init__.py +++ b/test/lib/__init__.py @@ -1,5 +1,12 @@ import sys import os.path +import getopt + +use_x = True +opts, args = getopt.getopt(sys.argv[1:], 'n', ['no-x']) +for o, a in opts: + if o in ('-n', '--no-x'): + use_x = False gajim_root = os.path.join(os.path.abspath(os.path.dirname(__file__)), '../..') @@ -32,8 +39,10 @@ def setup_env(): from common import gajim gajim.DATA_DIR = gajim_root + '/data' + gajim.use_x = use_x - import gtkgui_helpers - gtkgui_helpers.GLADE_DIR = gajim_root + '/data/glade' + if use_x: + import gtkgui_helpers + gtkgui_helpers.GLADE_DIR = gajim_root + '/data/glade' # vim: se ts=3: diff --git a/test/lib/mocks.py b/test/lib/mocks.py index f5c74f607..8d0e80f96 100644 --- a/test/lib/mocks.py +++ b/test/lib/mocks.py @@ -19,7 +19,8 @@ class MockConnection(Mock, ConnectionHandlersBase): self.blocked_groups = {} self.sessions = {} - gajim.interface.instances[account] = {'infos': {}, 'disco': {}, 'gc_config': {}, 'search': {}} + gajim.interface.instances[account] = {'infos': {}, 'disco': {}, + 'gc_config': {}, 'search': {}} gajim.interface.minimized_controls[account] = {} gajim.contacts.add_account(account) gajim.groups[account] = {} @@ -91,6 +92,7 @@ class MockChatControl(Mock): class MockInterface(Mock): def __init__(self, *args): Mock.__init__(self, *args) + gajim.interface = self self.msg_win_mgr = Mock() self.roster = Mock() @@ -99,7 +101,15 @@ class MockInterface(Mock): self.minimized_controls = {} self.status_sent_to_users = Mock() - self.jabber_state_images = {'16': Mock(), '32': Mock(), 'opened': Mock(), 'closed': Mock()} + if gajim.use_x: + self.jabber_state_images = {'16': {}, '32': {}, 'opened': {}, + 'closed': {}} + + import gtkgui_helpers + gtkgui_helpers.make_jabber_state_images() + else: + self.jabber_state_images = {'16': Mock(), '32': Mock(), + 'opened': Mock(), 'closed': Mock()} class MockLogger(Mock): def __init__(self): diff --git a/test/runtests.py b/test/runtests.py index 73ac4f4c8..8e496b916 100755 --- a/test/runtests.py +++ b/test/runtests.py @@ -1,16 +1,51 @@ #!/usr/bin/env python +import sys import unittest +import getopt +use_x = True +verbose = 1 + +try: + shortargs = 'hnv:' + longargs = 'help no-x verbose=' + opts, args = getopt.getopt(sys.argv[1:], shortargs, longargs.split()) +except getopt.error, msg: + print msg + print 'for help use --help' + sys.exit(2) +for o, a in opts: + if o in ('-h', '--help'): + print 'runtests [--help] [--no-x] [--verbose level]' + sys.exit() + elif o in ('-n', '--no-x'): + use_x = False + elif o in ('-v', '--verbose'): + try: + verbose = int(a) + except: + print 'verbose must be a number >= 0' # new test modules need to be added manually modules = ( 'test_caps', 'test_dispatcher_nb', - 'test_misc_interface', - 'test_roster', - 'test_sessions', - ) +) + +if use_x: + modules += ('test_misc_interface', + 'test_roster', + 'test_sessions', + ) + +nb_errors = 0 +nb_failures = 0 + for mod in modules: suite = unittest.defaultTestLoader.loadTestsFromName(mod) - unittest.TextTestRunner(verbosity=1).run(suite) + result = unittest.TextTestRunner(verbosity=verbose).run(suite) + nb_errors += len(result.errors) + nb_failures += len(result.failures) + +sys.exit(nb_errors + nb_failures) # vim: se ts=3: