summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorMarius Gedminas <marius@gedmin.as>2012-12-20 15:17:35 +0000
committerMarius Gedminas <marius@gedmin.as>2012-12-20 15:17:35 +0000
commitf1a0cb3a4d1e63ad6ba1577093245033fc16b870 (patch)
tree61c31d1f8656391674b3061be31d588d2b11626c /setup.py
parent8bc18f6c29c1d7e180c2fc6fb25069a5b45b8528 (diff)
downloadzope-pagetemplate-f1a0cb3a4d1e63ad6ba1577093245033fc16b870.tar.gz
Support setup.py test. Add a tox.ini.
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py46
1 files changed, 42 insertions, 4 deletions
diff --git a/setup.py b/setup.py
index 3838a60..d4e4a3e 100644
--- a/setup.py
+++ b/setup.py
@@ -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',
)