Merge "pbr/testr_command.py: Add logging"

This commit is contained in:
Jenkins 2014-05-09 00:01:31 +00:00 committed by Gerrit Code Review
commit adb0d20ec7
1 changed files with 17 additions and 0 deletions

View File

@ -40,11 +40,14 @@ package metadata.
from distutils import cmd
import distutils.errors
import logging
import os
import sys
from testrepository import commands
logger = logging.getLogger(__name__)
class Testr(cmd.Command):
@ -58,11 +61,13 @@ class Testr(cmd.Command):
('coverage-package-name=', None, "Use this name for coverage package"),
('slowest', None, "Show slowest test times after tests complete."),
('no-parallel', None, "Run testr serially"),
('log-level=', 'l', "Log level (default: info)"),
]
boolean_options = ['coverage', 'slowest', 'no_parallel']
def _run_testr(self, *args):
logger.debug("_run_testr called with args = %r", args)
return commands.run_argv([sys.argv[0]] + list(args),
sys.stdin, sys.stdout, sys.stderr)
@ -73,17 +78,26 @@ class Testr(cmd.Command):
self.slowest = None
self.coverage_package_name = None
self.no_parallel = None
self.log_level = 'info'
def finalize_options(self):
self.log_level = getattr(
logging,
self.log_level.upper(),
logging.INFO)
logging.basicConfig(level=self.log_level)
logger.debug("finalize_options called")
if self.testr_args is None:
self.testr_args = []
else:
self.testr_args = self.testr_args.split()
if self.omit:
self.omit = "--omit=%s" % self.omit
logger.debug("finalize_options: self.__dict__ = %r", self.__dict__)
def run(self):
"""Set up testr repo, then run testr"""
logger.debug("run called")
if not os.path.isdir(".testrepository"):
self._run_testr("init")
@ -103,6 +117,7 @@ class Testr(cmd.Command):
self._coverage_after()
def _coverage_before(self):
logger.debug("_coverage_before called")
package = self.distribution.get_name()
if package.startswith('python-'):
package = package[7:]
@ -112,7 +127,9 @@ class Testr(cmd.Command):
package = self.coverage_package_name
options = "--source %s --parallel-mode" % self.coverage_package_name
os.environ['PYTHON'] = ("coverage run %s" % options)
logger.debug("os.environ['PYTHON'] = %r", os.environ['PYTHON'])
def _coverage_after(self):
logger.debug("_coverage_after called")
os.system("coverage combine")
os.system("coverage html -d ./cover %s" % self.omit)