Make setup.py --help-commands work without testrepository

testr command is registered by pbr.hooks.commands if
testrepository is installed, so there is no need to
setup the entry point in setup.cfg.

(cherry-picked from 946cf80b75)

Change-Id: I95aae12d1ac810b6d1d09b71f2a0d87be5ccb6ab
Closes-Bug: #1375048
This commit is contained in:
Akihiro Motoki 2014-09-29 07:36:19 +09:00 committed by Sachi King
parent 474019d35b
commit 6e472b4905
2 changed files with 33 additions and 18 deletions

View File

@ -39,6 +39,7 @@ from pbr import extra_files
from pbr import git
from pbr import options
import pbr.pbr_json
from pbr import testr_command
from pbr import version
REQUIREMENTS_FILES = ('requirements.txt', 'tools/pip-requires')
@ -246,27 +247,20 @@ class _PipInstallTestRequires(object):
self.install_test_requirements()
_copy_test_requires_to(self.egg_info)
try:
from pbr import testr_command
class TestrTest(testr_command.Testr, _PipInstallTestRequires):
"""Make setup.py test do the right thing."""
class TestrTest(testr_command.Testr):
"""Make setup.py test do the right thing."""
command_name = 'test'
command_name = 'test'
def run(self):
self.pre_run()
# Can't use super - base class old-style class
testr_command.Testr.run(self)
_have_testr = True
except ImportError:
_have_testr = False
def run(self):
# Can't use super - base class old-style class
testr_command.Testr.run(self)
def have_testr():
return _have_testr
return testr_command.have_testr
try:
from nose import commands

View File

@ -44,12 +44,10 @@ import logging
import os
import sys
from testrepository import commands
logger = logging.getLogger(__name__)
class Testr(cmd.Command):
class TestrReal(cmd.Command):
description = "Run unit tests using testr"
@ -133,3 +131,26 @@ class Testr(cmd.Command):
logger.debug("_coverage_after called")
os.system("coverage combine")
os.system("coverage html -d ./cover %s" % self.omit)
class TestrFake(cmd.Command):
description = "Run unit tests using testr"
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
print("Install testrepository to run 'testr' command properly.")
try:
from testrepository import commands
have_testr = True
Testr = TestrReal
except ImportError:
have_testr = False
Testr = TestrFake