/[thuban]/branches/WIP-pyshapelib-bramz/test/runtests.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/test/runtests.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 292 by bh, Fri Aug 30 09:44:12 2002 UTC revision 2705 by bernhard, Sun Sep 24 18:55:30 2006 UTC
# Line 1  Line 1 
1  # Copyright (c) 2002 by Intevation GmbH  # Copyright (c) 2002, 2003, 2004, 2005, 2006 by Intevation GmbH
2  # Authors:  # Authors:
3  # Bernhard Herzog <[email protected]>  # Bernhard Herzog <[email protected]>
4  #  #
# Line 11  Main entry point for the Thuban test sui Line 11  Main entry point for the Thuban test sui
11  Just run this file as a python script to execute all tests  Just run this file as a python script to execute all tests
12  """  """
13    
14    __version__ = "$Revision$"
15    # $Source$
16    # $Id$
17    
18    import os
19    
20    # It should be possible to run the Thuban testsuite without an X
21    # connection, so we remove the DISPLAY environment variable which should
22    # lead to an error if the wxGTK module is imported accidentally. The
23    # DISPLAY variable is not always set so we catch and ignore the KeyError
24    try:
25        del os.environ["DISPLAY"]
26    except KeyError:
27        pass
28    
29  import os, sys  import sys
30    import warnings
31  import unittest  import unittest
32    import getopt
33    
34  import support  import support
35  support.initthuban()  support.initthuban()
36  import Thuban.Lib.connector  import Thuban.Lib.connector
37    
38  def main():  def find_test_modules(dirname, package = None):
39      """Run all the tests in the Thuban test suite"""      """Return a list the names of the test modules in the directory dirname
40    
41      Thuban.Lib.connector._the_connector.print_connections()      The return value is a list of names that can be passed to
42        unittest.defaultTestLoader.loadTestsFromNames.  Each name of the
43        list is the name of a pure python module, one for each file in
44        dirname that starts with 'test'.
45    
46        The optional parameter package should be the name of the python
47        package whose directory is dirname.  If package is given all names
48        in the returned list will be prefixed with package and a dot.
49        """
50        if package:
51            prefix = package + "."
52        else:
53            prefix = ""
54    
55        return [prefix + name[:-3]
56                for name in os.listdir(dirname)
57                    if name[:4] == "test" and name[-3:] == ".py"]
58    
     files = os.listdir(os.curdir)  
     names = []  
     for file in files:  
         if file[:4] == "test" and file[-3:] == ".py":  
             names.append(file[:-3])  
59    
60      suite = unittest.defaultTestLoader.loadTestsFromNames(names)  def main():
61      runner = unittest.TextTestRunner(verbosity = 2)      """Run all the tests in the Thuban test suite"""
     result = runner.run(suite)  
62    
63      Thuban.Lib.connector._the_connector.print_connections()      # Turn Thuban's deprecation warnings into errors so they're caught
64        # by the tests
65        #
66        # Maintenance: Keep a warning filter until the backwards
67        # compatibility code is removed at which time using the old
68        # interfaces should lead to other errors anyway.
69    
70        # The layer attributes table, shapetable, shapefile and filename are
71        # deprecated.
72        warnings.filterwarnings("error", "The Layer attribute.*is deprecated",
73                                DeprecationWarning)
74    
75        verbosity = 1
76    
77        opts, args = getopt.getopt(sys.argv[1:], 'v',
78                    ['verbose', 'setdecimalcommalocale', "internal-encoding="])
79        for optchar, value in opts:
80            if optchar in ("-v", "--verbose"):
81                verbosity = 2
82            elif optchar == "--internal-encoding":
83                Thuban.set_internal_encoding(value)
84            elif optchar == "--setdecimalcommalocale":
85                import localessupport
86                oldlocale = localessupport.setdecimalcommalocale()
87                if oldlocale == None:
88                    print>>sys.stderr, "Did not find a locale with comma."
89            else:
90                print>>sys.stderr, "Unknown option", optchar
91    
92        # Build the list of test names.  If names were given on the command
93        # line, run exactly those.  Othwerwise build a default list of
94        # names.
95        if args:
96            names = args
97        else:
98            # All Python files starting with 'test' in the current directory
99            # and some directories in Extensions contain test cases.
100            # FIXME: It should be possible to run runtests.py even when not in
101            # the test directory
102            names = find_test_modules(".")
103            names += find_test_modules("../Extensions/svgexport/test",
104                                       "Extensions.svgexport.test")
105            names += find_test_modules("../Extensions/ogr/test",
106                                       "Extensions.ogr.test")
107        suite = unittest.defaultTestLoader.loadTestsFromNames(names)
108        runner = support.ThubanTestRunner(verbosity = verbosity)
109        result = support.execute_as_testsuite(runner.run, suite)
110    
111      sys.exit(not result.wasSuccessful())      sys.exit(not result.wasSuccessful())
112    

Legend:
Removed from v.292  
changed lines
  Added in v.2705

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26