#!/usr/bin/env python # # Run all Kforge tests. # import os import sys import re import unittest from optparse import OptionParser import kforge.system sysdict = kforge.system.SystemDictionary() if __name__ == "__main__": mode = sysdict['system_mode'] if mode != 'development': msg = 'Tests can only be run in development mode but you are currently in %s mode. ' % mode msg += 'You can set the mode via the configuration parameter .' print msg sys.exit(0) usage = 'usage: %prog [options] [module_name]' usage += '\n\tmodule_name specifies the module to test. ' usage += 'If none supplied then run all tests.' parser = OptionParser(usage) parser.add_option('-v', '--verbose', action='store_true', dest='verbose', default=False, help='Be verbose in printing status messages') parser.add_option('-l', '--level', action='store', type='int', dest='level', default=1, help='Verbosity level of test runner') (options, args) = parser.parse_args() # by default always 1 argument (name of file itself) suiteToRun = None if len(args) == 0: import kforge.test suiteToRun = kforge.test.suite() elif len(args) == 1: moduleName = args[0] suiteToRun = __import__(moduleName,'','','*').suite() else: print 'ERROR: you have supplied too many arguments\n' parser.print_help() sys.exit(0) unittest.TextTestRunner(verbosity=options.level).run(suiteToRun)