summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-01-09 14:48:39 +0000
committerGerrit Code Review <review@openstack.org>2012-01-09 14:48:39 +0000
commitf560488ed98fd70bc86d58bf6fcf335a877b5a14 (patch)
tree0ec798932f3fbb2c75698ac680143ba21916b16d
parentee617f4b176c33e30b740481d18bbca992cfb557 (diff)
parent1c2708fb5ba23c0b4c9e830cd288cb2ba72a213d (diff)
Merge "Fixed Test Coverage Handling"
-rw-r--r--keystone/test/__init__.py11
-rw-r--r--keystone/test/etc/sql_no_hpidm.conf.template8
-rwxr-xr-xrun_tests.py25
-rwxr-xr-xrun_tests.sh5
4 files changed, 33 insertions, 16 deletions
diff --git a/keystone/test/__init__.py b/keystone/test/__init__.py
index 8a039e12..d283ab0c 100644
--- a/keystone/test/__init__.py
+++ b/keystone/test/__init__.py
@@ -418,7 +418,16 @@ class KeystoneTest(object):
# run the keystone server
logger.info("Starting the keystone server...")
- parser = optparse.OptionParser(version='%%prog %s' %
+ class SilentOptParser(optparse.OptionParser):
+ """ Class used to prevent OptionParser from exiting when it detects
+ options coming in for nose/testing """
+ def exit():
+ pass
+
+ def error(self, msg):
+ pass
+
+ parser = SilentOptParser(version='%%prog %s' %
keystone.version.version())
common_group = config.add_common_options(parser)
config.add_log_options(parser)
diff --git a/keystone/test/etc/sql_no_hpidm.conf.template b/keystone/test/etc/sql_no_hpidm.conf.template
index c2c0b235..2f5cefa4 100644
--- a/keystone/test/etc/sql_no_hpidm.conf.template
+++ b/keystone/test/etc/sql_no_hpidm.conf.template
@@ -27,13 +27,13 @@ backend_entities = ['Endpoints', 'Credentials', 'EndpointTemplates', 'Tenant',
[pipeline:admin]
pipeline =
- urlrewritefilter
+ urlnormalizer
d5_compat
admin_api
[pipeline:keystone-legacy-auth]
pipeline =
- urlrewritefilter
+ urlnormalizer
legacy_auth
d5_compat
service_api
@@ -44,8 +44,8 @@ paste.app_factory = keystone.server:service_app_factory
[app:admin_api]
paste.app_factory = keystone.server:admin_app_factory
-[filter:urlrewritefilter]
-paste.filter_factory = keystone.middleware.url:filter_factory
+[filter:urlnormalizer]
+paste.filter_factory = keystone.frontends.normalizer:filter_factory
[filter:d5_compat]
paste.filter_factory = keystone.frontends.d5_compat:filter_factory
diff --git a/run_tests.py b/run_tests.py
index 28da7068..2f0908a5 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -57,9 +57,10 @@ if __name__ == '__main__':
TESTS = [t for t in TESTS if filter in str(t)]
if not TESTS:
print 'No test configuration by the name %s found' % filter
- exit()
+ sys.exit(2)
#Run test suites
if len(TESTS) > 1:
+ directory = os.getcwd()
for test_num, test_cls in enumerate(TESTS):
# We've had problems with resetting SQLAlchemy, so we can fire off
# a separate process for each test suite to guarantee the
@@ -82,19 +83,25 @@ if __name__ == '__main__':
except Exception, e:
print "Error:", e
logger.exception(e)
- sys.exit(2)
+ sys.exit(1)
# Collect coverage from each run. They'll be combined later in .sh
if '--with-coverage' in sys.argv:
- coverage_file = '.coverage.%s' % test_num
+ coverage_file = os.path.join(directory, ".coverage")
+ target_file = "%s.%s" % (coverage_file, test_cls.__name__)
try:
+ if os.path.exists(target_file):
+ logger.info("deleting %s" % target_file)
+ os.unlink(target_file)
if os.path.exists(coverage_file):
- os.unlink(coverage_file)
- os.rename('.coverage', coverage_file)
+ logger.info("Saving %s to %s" % (coverage_file,
+ target_file))
+ os.rename(coverage_file, target_file)
except Exception, e:
logger.exception(e)
- print "Failed to move .coverage file to %s: %s" % \
- (coverage_file, e)
-
+ print ("Failed to move coverage file while running test"
+ ": %s. Error reported was: %s" %
+ (test_cls.__name__, e))
+ sys.exit(1)
else:
for test_num, test_cls in enumerate(TESTS):
try:
@@ -106,4 +113,4 @@ if __name__ == '__main__':
except Exception, e:
print "Error:", e
logger.exception(e)
- sys.exit(2)
+ sys.exit(1)
diff --git a/run_tests.sh b/run_tests.sh
index 5b286c2e..e943bd8b 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -24,7 +24,7 @@ function usage {
echo " -p, --pep8 Just run pep8"
echo " -l, --pylint Just run pylint"
echo " -j, --json Just validate JSON"
- echo " -c, --coverage Generate coverage report"
+ echo " -c, --with-coverage Generate coverage report"
echo " -h, --help Print this usage message"
echo " --hide-elapsed Don't print the elapsed time for each test along with slow test list"
echo " --verbose Print additional logging"
@@ -57,7 +57,7 @@ function process_option {
-p|--pep8) just_pep8=1;;
-l|--pylint) just_pylint=1;;
-j|--json) just_json=1;;
- -c|--coverage) coverage=1;;
+ -c|--with-coverage) coverage=1;;
-*) addlopts="$addlopts $1";;
*) addlargs="$addlargs $1"
esac
@@ -197,5 +197,6 @@ if [ $coverage -eq 1 ]; then
echo "Generating coverage report in covhtml/"
${wrapper} coverage combine
${wrapper} coverage html -d covhtml -i
+ ${wrapper} coverage report --omit='/usr*,keystone/test*,.,setup.py,*egg*,/Library*,*.xml,*.tpl'
fi