summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-03-27 23:12:29 +0000
committerGerrit Code Review <review@openstack.org>2017-03-27 23:12:29 +0000
commitf377238903a54001354f597f55ddf16fc9bb0996 (patch)
treeee0ddbda56df0a19df5b4d1abe014624c8603512
parent6448d036f7ae7e336708f00b8d55d8cfb6c8c942 (diff)
parente3ad98ca19df57078de751878a38974327aa954d (diff)
downloadpbr-f377238903a54001354f597f55ddf16fc9bb0996.tar.gz
Merge "Remove testr entry point"
-rw-r--r--doc/source/index.rst47
-rw-r--r--pbr/testr_command.py18
-rw-r--r--setup.cfg2
-rw-r--r--tox.ini4
4 files changed, 59 insertions, 12 deletions
diff --git a/doc/source/index.rst b/doc/source/index.rst
index a2b4342..4c80aa6 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -390,6 +390,53 @@ environment, you can use::
testing =
quux:python_version=='2.7'
+
+Testing
+-------
+
+pbr overrides the ``setuptools`` hook ``test`` (i.e. ``setup.py
+test``). The following sequence is followed:
+
+#. If a ``.testr.conf`` file exists and `testrepository
+ <https://pypi.python.org/pypi/testrepository>`__ is installed, PBR
+ will use it as the test runner. See the ``testr`` documentation
+ for more details.
+
+ .. note::
+
+ This is separate to ``setup.py testr`` (note the extra ``r``) which
+ is provided directly by the ``testrepository`` package. Be careful
+ as there is some overlap of command arguments.
+
+#. Although deprecated, if ``[nosetests]`` is defined in ``setup.cfg``
+ and `nose <http://nose.readthedocs.io/en/latest/>`__ is installed,
+ the ``nose`` runner will be used.
+
+#. In other cases no override will be installed and the ``test``
+ command will revert to `setuptools
+ <http://setuptools.readthedocs.io/en/latest/setuptools.html#test-build-package-and-run-a-unittest-suite>`__.
+
+A typical usage would be in ``tox.ini`` such as::
+
+ [tox]
+ minversion = 2.0
+ skipsdist = True
+ envlist = py33,py34,py35,py26,py27,pypy,pep8,docs
+
+ [testenv]
+ usedevelop = True
+ setenv =
+ VIRTUAL_ENV={envdir}
+ CLIENT_NAME=pbr
+ deps = .
+ -r{toxinidir}/test-requirements.txt
+ commands =
+ python setup.py test --testr-args='{posargs}'
+
+The argument ``--coverage`` will set ``PYTHON`` to ``coverage run`` to
+produce a coverage report. ``--coverage-package-name`` can be used to
+modify or narrow the packages traced.
+
Additional Docs
===============
diff --git a/pbr/testr_command.py b/pbr/testr_command.py
index e5ed026..cd179a2 100644
--- a/pbr/testr_command.py
+++ b/pbr/testr_command.py
@@ -26,16 +26,18 @@
# license you chose for the specific language governing permissions and
# limitations under that license.
-"""setuptools/distutils commands to run testr via setup.py
+"""setuptools/distutils command to run testr via setup.py
-Currently provides 'testr' which runs tests using testr. You can pass
---coverage which will also export PYTHON='coverage run --source <your package>'
-and automatically combine the coverage from each testr backend test runner
-after the run completes.
+PBR will hook in the Testr class to provide "setup.py test" when
+.testr.conf is present in the repository (see pbr/hooks/commands.py).
+
+If we are activated but testrepository is not installed, we provide a
+sensible error.
+
+You can pass --coverage which will also export PYTHON='coverage run
+--source <your package>' and automatically combine the coverage from
+each testr backend test runner after the run completes.
-To use, just use setuptools/distribute and depend on testr, and it should be
-picked up automatically (as the commands are exported in the testrepository
-package metadata.
"""
from distutils import cmd
diff --git a/setup.cfg b/setup.cfg
index a8d63d1..e96e0b3 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -41,8 +41,6 @@ autodoc_tree_excludes =
[entry_points]
distutils.setup_keywords =
pbr = pbr.core:pbr
-distutils.commands =
- testr = pbr.testr_command:Testr
egg_info.writers =
pbr.json = pbr.pbr_json:write_pbr_json
console_scripts =
diff --git a/tox.ini b/tox.ini
index a288adf..823a8e8 100644
--- a/tox.ini
+++ b/tox.ini
@@ -11,7 +11,7 @@ setenv =
CLIENT_NAME=pbr
deps = -r{toxinidir}/test-requirements.txt
commands =
- python setup.py testr --testr-args='{posargs}'
+ python setup.py test --testr-args='{posargs}'
[tox:jenkins]
sitepackages = True
@@ -24,7 +24,7 @@ commands = python setup.py build_sphinx
[testenv:cover]
commands =
- python setup.py testr --coverage
+ python setup.py test --coverage
[testenv:venv]
commands = {posargs}