[z3-checkins] r35327 - in z3/deliverance/trunk: . deliverance

ianb at codespeak.net ianb at codespeak.net
Tue Dec 5 19:59:29 CET 2006


Author: ianb
Date: Tue Dec  5 19:59:26 2006
New Revision: 35327

Added:
   z3/deliverance/trunk/deliverance/testrunner.py   (contents, props changed)
Modified:
   z3/deliverance/trunk/deliverance/tests.py
   z3/deliverance/trunk/setup.py
Log:
Added better selection option for test runner

Added: z3/deliverance/trunk/deliverance/testrunner.py
==============================================================================
--- (empty file)
+++ z3/deliverance/trunk/deliverance/testrunner.py	Tue Dec  5 19:59:26 2006
@@ -0,0 +1,46 @@
+import sys
+import os
+from deliverance import tests
+
+def main(args=None):
+    if args is None:
+        args = sys.argv[1:]
+    # Kind of a crude way to pass info to nose...
+    if sys.argv[0].endswith('.wrapped'):
+        # A buildout detail
+        sys.argv[0] = sys.argv[0][:-len('.wrapped')]
+    remove_items = []
+    for i in range(len(args)):
+        if args[i] == '--test-file':
+            tests.select_tests.append(args[i+1])
+            remove_items.extend([i, i+1])
+        elif args[i].startswith('--test-file='):
+            tests.select_tests.append(args[i][len('--test-file='):])
+            remove_items.append(i)
+    new_args = []
+    for i in range(len(args)):
+        if i not in remove_items:
+            new_args.append(args[i])
+    args = new_args
+    os.environ.update(dict(
+        NOSE_WHERE=os.path.dirname(os.path.dirname(__file__)),
+        NOSE_DETAILED_ERRORS='t',
+        NOSE_WITH_DOCTEST='t',
+        NOSE_DOCTEST_EXTENSION='.txt',
+        NOSE_WITH_MISSING_TESTS='t'))
+    if tests.select_tests:
+        filename = tests.__file__
+        if filename.endswith('.pyc'):
+            filename = filename[:-1]
+        args.append(filename+':test_examples')
+        del os.environ['NOSE_WITH_DOCTEST']
+    sys.argv[1:] = args
+    try:
+        import nose; nose.main()
+    finally:
+        if '-h' in args or '--help' in args:
+            print '  --test-file=FILE'
+            print ' '*23, 'Restrict XML test files (Deliverance)'
+
+if __name__ == '__main__':
+    main()

Modified: z3/deliverance/trunk/deliverance/tests.py
==============================================================================
--- z3/deliverance/trunk/deliverance/tests.py	(original)
+++ z3/deliverance/trunk/deliverance/tests.py	Tue Dec  5 19:59:26 2006
@@ -1,5 +1,6 @@
 import unittest
 import os
+import sys
 from lxml import etree
 from formencode.doctest_xml_compare import xml_compare
 from deliverance.interpreter import Renderer as PyRenderer
@@ -9,6 +10,8 @@
 
 RENDERER_CLASSES = [ PyRenderer, XSLTRenderer ]
 
+select_tests = []
+
 class DeliveranceTestCase:
 
     def __init__(self, rules, rules_uri, theme, theme_uri, content, output, renderer_class):
@@ -60,10 +63,13 @@
                 yield case
 
 def cases(fn, renderer_class):
-    if not os.path.basename(fn).startswith('test_'):
+    basename = os.path.basename(fn)
+    if not basename.startswith('test_'):
         return
     if fn.endswith('~'):
         return
+    if select_tests and basename not in select_tests:
+        return
     try:
         doc = etree.parse(fn)
     except etree.XMLSyntaxError, e:
@@ -107,17 +113,3 @@
 
 
 
-
-
-def main(args=None):
-    # Kind of a crude way to pass info to nose...
-    os.environ.update(dict(
-        NOSE_WHERE=os.path.dirname(__file__),
-        NOSE_DETAILED_ERRORS='t',
-        NOSE_WITH_DOCTEST='t',
-        NOSE_DOCTEST_EXTENSION='.txt',
-        NOSE_WITH_MISSING_TESTS='t'))
-    import nose; nose.main() 
-
-if __name__ == '__main__':
-    main()

Modified: z3/deliverance/trunk/setup.py
==============================================================================
--- z3/deliverance/trunk/setup.py	(original)
+++ z3/deliverance/trunk/setup.py	Tue Dec  5 19:59:26 2006
@@ -33,7 +33,7 @@
 
       [console_scripts]
       deliverance-proxy = deliverance.proxycommand:main
-      deliverance-tests = deliverance.tests:main
+      deliverance-tests = deliverance.testrunner:main
       deliverance-speed = deliverance.test_speed:main
       deliverance-handtransform = deliverance.handtransform:main
       """,


More information about the z3-checkins mailing list