Commit f932aed2 authored by Tres Seaver's avatar Tres Seaver

Skip layer-based tests inside 'setup.py test'.

parent 58b8436e
...@@ -45,6 +45,23 @@ def _modname(path, base, name=''): ...@@ -45,6 +45,23 @@ def _modname(path, base, name=''):
dirname, basename = os.path.split(path) dirname, basename = os.path.split(path)
return _modname(dirname, base, basename + '.' + name) return _modname(dirname, base, basename + '.' + name)
def _flatten(suite, predicate=lambda *x: True):
from unittest import TestCase
for suite_or_case in suite:
if predicate(suite_or_case):
if isinstance(suite_or_case, TestCase):
yield suite_or_case
else:
for x in _flatten(suite_or_case):
yield x
def _no_layer(suite_or_case):
return getattr(suite_or_case, 'layer', None) is None
def _unittests_only(suite, mod_suite):
for case in _flatten(mod_suite, _no_layer):
suite.addTest(case)
def alltests(): def alltests():
import logging import logging
import pkg_resources import pkg_resources
...@@ -70,7 +87,7 @@ def alltests(): ...@@ -70,7 +87,7 @@ def alltests():
mod = __import__( mod = __import__(
_modname(dirpath, base, os.path.splitext(filename)[0]), _modname(dirpath, base, os.path.splitext(filename)[0]),
{}, {}, ['*']) {}, {}, ['*'])
suite.addTest(mod.test_suite()) _unittests_only(suite, mod.test_suite())
return suite return suite
tests_require = ['zope.testing', 'manuel', 'random2'] tests_require = ['zope.testing', 'manuel', 'random2']
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment