#!/usr/bin/env python # # Run all Kforge tests. # import os import sys import re from optparse import OptionParser os.environ['DJANGO_SETTINGS_MODULE'] = 'kforge.django.settings.main' if __name__ == "__main__": 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') parser.add_option('-c', '--conf', action='store', dest='config', default='', help='Path to configuration file. If not provided please ensure ' + \ 'relevant environment variable is set.' ) parser.add_option('-p', '--profile', action='store_true', dest='profile', default=False, help='Profile the performance of a test suite') (options, args) = parser.parse_args() if options.config: os.environ['KFORGE_SETTINGS'] = options.config # have to do this last as KFORGE_SETTINGS must be set before importing import kforge.testrunner testSuiteName = 'kforge.test' if len(args) == 1: testSuiteName = args[0] elif len(args) >= 1: parser.print_help() sys.exit(1) if options.profile: import profile code = "result = kforge.testrunner.run(testSuiteName, options.level)" profile.run(code) else: result = kforge.testrunner.run(testSuiteName, options.level) if not result.wasSuccessful(): sys.exit(1)