diff options
author | Marius Gedminas <marius@gedmin.as> | 2012-12-20 15:17:35 +0000 |
---|---|---|
committer | Marius Gedminas <marius@gedmin.as> | 2012-12-20 15:17:35 +0000 |
commit | f1a0cb3a4d1e63ad6ba1577093245033fc16b870 (patch) | |
tree | 61c31d1f8656391674b3061be31d588d2b11626c /setup.py | |
parent | 8bc18f6c29c1d7e180c2fc6fb25069a5b45b8528 (diff) | |
download | zope-pagetemplate-f1a0cb3a4d1e63ad6ba1577093245033fc16b870.tar.gz |
Support setup.py test. Add a tox.ini.
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 46 |
1 files changed, 42 insertions, 4 deletions
@@ -25,6 +25,44 @@ from setuptools import setup, find_packages def read(*rnames): return open(os.path.join(os.path.dirname(__file__), *rnames)).read() +def _modname(path, base, name=''): + if path == base: + return name + dirname, basename = os.path.split(path) + return _modname(dirname, base, basename + '.' + name) + +def alltests(): + import logging + import pkg_resources + import unittest + + class NullHandler(logging.Handler): + level = 50 + + def emit(self, record): + pass + + logging.getLogger().addHandler(NullHandler()) + + suite = unittest.TestSuite() + base = pkg_resources.working_set.find( + pkg_resources.Requirement.parse('zope.pagetemplate')).location + for dirpath, dirnames, filenames in os.walk(base): + if os.path.basename(dirpath) == 'tests': + for filename in filenames: + if ( filename.endswith('.py') and + filename.startswith('test') ): + mod = __import__( + _modname(dirpath, base, os.path.splitext(filename)[0]), + {}, {}, ['*']) + suite.addTest(mod.test_suite()) + return suite + +TESTS_REQUIRE = [ + 'zope.testing', + 'zope.proxy', + 'zope.security', +] setup(name='zope.pagetemplate', version='4.0.1.dev0', @@ -62,10 +100,8 @@ setup(name='zope.pagetemplate', package_dir={'': 'src'}, namespace_packages=['zope'], extras_require=dict( - test=['zope.testing', - 'zope.proxy', - 'zope.security', - ]), + test=TESTS_REQUIRE, + ), install_requires=['setuptools', 'zope.interface', 'zope.component', @@ -78,4 +114,6 @@ setup(name='zope.pagetemplate', ], include_package_data=True, zip_safe=False, + tests_require=TESTS_REQUIRE, + test_suite='__main__.alltests', ) |