summaryrefslogtreecommitdiff
path: root/setuptools/command/test.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2017-09-03 19:57:54 -0400
committerJason R. Coombs <jaraco@jaraco.com>2017-09-03 20:01:45 -0400
commitdcb24ad15465c266a3f258471766fbbe8fc8a42e (patch)
tree13123440610d78e398476a8ce1e8cc3d9f9ec72e /setuptools/command/test.py
parentf14930e66601b462699c44384c482cd966f53b8f (diff)
parent1b192005562d5cf0de30c02154c58fd1dca577c8 (diff)
downloadpython-setuptools-git-dcb24ad15465c266a3f258471766fbbe8fc8a42e.tar.gz
Merge branch 'master' into drop-py26
Diffstat (limited to 'setuptools/command/test.py')
-rw-r--r--setuptools/command/test.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/setuptools/command/test.py b/setuptools/command/test.py
index 9931565b..f00d6794 100644
--- a/setuptools/command/test.py
+++ b/setuptools/command/test.py
@@ -4,14 +4,15 @@ import sys
import contextlib
import itertools
import unittest
-from distutils.errors import DistutilsOptionError
+from distutils.errors import DistutilsError, DistutilsOptionError
+from distutils import log
from unittest import TestLoader
from setuptools.extern import six
from setuptools.extern.six.moves import map, filter
from pkg_resources import (resource_listdir, resource_exists, normalize_path,
- working_set, _namespace_packages,
+ working_set, _namespace_packages, evaluate_marker,
add_activation_listener, require, EntryPoint)
from setuptools import Command
@@ -66,7 +67,7 @@ class test(Command):
user_options = [
('test-module=', 'm', "Run 'test_suite' in specified module"),
('test-suite=', 's',
- "Test suite to run (e.g. 'some_module.test_suite')"),
+ "Run single test, case or suite (e.g. 'module.test_suite')"),
('test-runner=', 'r', "Test runner to use"),
]
@@ -190,9 +191,13 @@ class test(Command):
Install the requirements indicated by self.distribution and
return an iterable of the dists that were built.
"""
- ir_d = dist.fetch_build_eggs(dist.install_requires or [])
+ ir_d = dist.fetch_build_eggs(dist.install_requires)
tr_d = dist.fetch_build_eggs(dist.tests_require or [])
- return itertools.chain(ir_d, tr_d)
+ er_d = dist.fetch_build_eggs(
+ v for k, v in dist.extras_require.items()
+ if k.startswith(':') and evaluate_marker(k[1:])
+ )
+ return itertools.chain(ir_d, tr_d, er_d)
def run(self):
installed_dists = self.install_dists(self.distribution)
@@ -225,12 +230,16 @@ class test(Command):
del_modules.append(name)
list(map(sys.modules.__delitem__, del_modules))
- unittest.main(
+ test = unittest.main(
None, None, self._argv,
testLoader=self._resolve_as_ep(self.test_loader),
testRunner=self._resolve_as_ep(self.test_runner),
exit=False,
)
+ if not test.result.wasSuccessful():
+ msg = 'Test failed: %s' % test.result
+ self.announce(msg, log.ERROR)
+ raise DistutilsError(msg)
@property
def _argv(self):