[Python-checkins] python/dist/src/Lib/test test_compiler.py, 1.5, 1.6 test_decimal.py, 1.13, 1.14

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Sat Sep 4 22:09:15 CEST 2004


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11509

Modified Files:
	test_compiler.py test_decimal.py 
Log Message:
Change the strategy for coping with time intensive tests from 
"all or none" to "all or some".

This provides much greater test coverage without eating much time.
It also makes it more likely that routine regression testing will
unearth bugs.



Index: test_compiler.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_compiler.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- test_compiler.py	8 Aug 2004 16:43:59 -0000	1.5
+++ test_compiler.py	4 Sep 2004 20:09:12 -0000	1.6
@@ -2,6 +2,7 @@
 import os
 import test.test_support
 import unittest
+from random import random
 
 class CompilerTest(unittest.TestCase):
 
@@ -18,6 +19,8 @@
             for basename in os.listdir(dir):
                 if not basename.endswith(".py"):
                     continue
+                if not TEST_ALL and random() < 0.98:
+                    continue
                 path = os.path.join(dir, basename)
                 if test.test_support.verbose:
                     print "compiling", path
@@ -31,7 +34,8 @@
                     compiler.compile(buf, basename, "exec")
 
 def test_main():
-    test.test_support.requires("compiler")
+    global TEST_ALL
+    TEST_ALL = test.test_support.is_resource_enabled("compiler")
     test.test_support.run_unittest(CompilerTest)
 
 if __name__ == "__main__":

Index: test_decimal.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_decimal.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- test_decimal.py	17 Aug 2004 16:34:51 -0000	1.13
+++ test_decimal.py	4 Sep 2004 20:09:13 -0000	1.14
@@ -181,6 +181,10 @@
     def eval_equation(self, s):
         #global DEFAULT_PRECISION
         #print DEFAULT_PRECISION
+
+        if not TEST_ALL and random.random() < 0.90:
+            return
+
         try:
             Sides = s.split('->')
             L = Sides[0].strip().split()
@@ -997,9 +1001,13 @@
 def test_main(arith=False, verbose=None):
     """ Execute the tests.
 
-    Runs arithmetic tests if arith is True or if the "decimal" resource
-    is enables in regrtest.py
+    Runs all arithmetic tests if arith is True or if the "decimal" resource
+    is enabled in regrtest.py
     """
+
+    global TEST_ALL
+    TEST_ALL = arith or is_resource_enabled('decimal')
+
     test_classes = [
         DecimalExplicitConstructionTest,
         DecimalImplicitConstructionTest,
@@ -1008,20 +1016,17 @@
         DecimalUsabilityTest,
         DecimalPythonAPItests,
         ContextAPItests,
+        DecimalTest,
     ]
 
-    if arith or is_resource_enabled('decimal'):
-        test_classes.extend([DecimalTest])
-
     run_unittest(*test_classes)
     import decimal as DecimalModule
     run_doctest(DecimalModule, verbose)
-    return
 
 
 if __name__ == '__main__':
     # Calling with no arguments runs all tests.
-    # Calling with "Skip" will skipover the arithmetic tests.
+    # Calling with "Skip" will skip over 90% of the arithmetic tests.
     if len(sys.argv) == 1:
         test_main(arith=True, verbose=True)
     elif len(sys.argv) == 2:



More information about the Python-checkins mailing list