[Checkins] SVN: zope.pagetemplate/trunk/ Support setup.py test. Add a tox.ini.

Marius Gedminas cvs-admin at zope.org
Thu Dec 20 15:17:36 UTC 2012


Log message for revision 128804:
  Support setup.py test.  Add a tox.ini.
  
  

Changed:
  U   zope.pagetemplate/trunk/setup.py
  A   zope.pagetemplate/trunk/tox.ini

-=-
Modified: zope.pagetemplate/trunk/setup.py
===================================================================
--- zope.pagetemplate/trunk/setup.py	2012-12-20 14:19:44 UTC (rev 128803)
+++ zope.pagetemplate/trunk/setup.py	2012-12-20 15:17:35 UTC (rev 128804)
@@ -25,7 +25,45 @@
 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',
       author='Zope Foundation and Contributors',
@@ -62,10 +100,8 @@
       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 @@
                        ],
       include_package_data=True,
       zip_safe=False,
+      tests_require=TESTS_REQUIRE,
+      test_suite='__main__.alltests',
       )

Added: zope.pagetemplate/trunk/tox.ini
===================================================================
--- zope.pagetemplate/trunk/tox.ini	                        (rev 0)
+++ zope.pagetemplate/trunk/tox.ini	2012-12-20 15:17:35 UTC (rev 128804)
@@ -0,0 +1,11 @@
+[tox]
+envlist =
+    # py32 needs a py3k-compatible zope.proxy at the very least
+    py26,py27
+
+[testenv]
+deps =
+    zope.pagetemplate[test]
+commands = 
+    python setup.py test -q
+



More information about the checkins mailing list