From b6e4972e7f6aa08e0392a2cf441b60ab0e7d88b7 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Wed, 9 Dec 2009 09:09:53 -0700 Subject: Take 2: Extensible return values and validation; steps toward a single output_for_cli(); enable more webUI stuff --- make-test | 96 +++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 33 deletions(-) (limited to 'make-test') diff --git a/make-test b/make-test index f7bf432bd..2d9449155 100755 --- a/make-test +++ b/make-test @@ -1,33 +1,63 @@ -#!/bin/bash - -# Script to run nosetests under multiple versions of Python - -export IPA_UNIT_TEST_MODE="cli_test" -versions="python2.4 python2.5 python2.6" - -for name in $versions -do - executable="/usr/bin/$name" - if [[ -f $executable ]]; then - echo "[ $name: Starting tests... ]" - ((runs += 1)) - if $executable /usr/bin/nosetests --debug-log=/dev/null -v --with-doctest --exclude="plugins" - then - echo "[ $name: Tests OK ]" - else - echo "[ $name: Tests FAILED ]" - ((failures += 1)) - fi - else - echo "[ $name: Not found ]" - fi - echo "" -done - -if [ $failures ]; then - echo "[ Ran under $runs version(s); FAILED under $failures version(s) ]" - echo "FAIL!" - exit $failures -else - echo "[ Ran under $runs version(s); all OK ]" -fi +#!/usr/bin/env python + +""" +Run IPA unit tests under multiple versions of Python (if present). +""" + +import sys +import optparse +import os +from os import path +from subprocess import call + +versions = ('2.4', '2.5', '2.6', '2.7') +python = '/usr/bin/python' +nose = '/usr/bin/nosetests' +ran = [] +fail = [] + +parser = optparse.OptionParser( + usage='usage: %prog [MODULE...]', +) +parser.add_option('--stop', + action='store_true', + default=False, + help='Stop running tests after the first error or failure', +) +(options, args) = parser.parse_args() + +cmd = [nose] + args + [ + '-v', + '--with-doctest', + '--exclude=plugins', +] +if options.stop: + cmd.append('--stop') + + +# This must be set so ipalib.api gets initialized property for tests: +os.environ['IPA_UNIT_TEST_MODE'] = 'cli_test' + +if not path.isfile(nose): + print 'ERROR: need %r' % nose + sys.exit(100) +for v in versions: + pver = python + v + if not path.isfile(pver): + continue + if 0 != call([pver] + cmd): + fail.append(pver) + ran.append(pver) + + +print '=' * 70 +for pver in ran: + if pver in fail: + print 'FAILED under %r' % pver + else: + print 'passed under %r' % pver +print '' +if fail: + print '** FAIL **' +else: + print '** pass **' -- cgit