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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2705 - (hide annotations)
Sun Sep 24 18:55:30 2006 UTC (18 years, 5 months ago) by bernhard
Original Path: trunk/thuban/test/runtests.py
File MIME type: text/x-python
File size: 3868 byte(s)
* test/runtests.py: Added new option ---setdecimalcommalocale
to run all tests with an LC_NUMERIC that uses comma as decimal_point.
Minor: Added (c) year 2006. Fixed typo in a docstring.

* test/test_transientdb.py: Minor: Added (c) year 2006. Fixed typo in
a docstring.

1 bernhard 2705 # Copyright (c) 2002, 2003, 2004, 2005, 2006 by Intevation GmbH
2 bh 292 # Authors:
3     # Bernhard Herzog <[email protected]>
4     #
5     # This program is free software under the GPL (>=v2)
6     # Read the file COPYING coming with Thuban for details.
7    
8     """
9     Main entry point for the Thuban test suite.
10    
11     Just run this file as a python script to execute all tests
12     """
13    
14 bh 1269 __version__ = "$Revision$"
15     # $Source$
16     # $Id$
17 bh 292
18 bh 1458 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 sys
30 bh 1219 import warnings
31 bh 292 import unittest
32 bh 1377 import getopt
33 bh 292
34     import support
35     support.initthuban()
36     import Thuban.Lib.connector
37    
38 bh 2079 def find_test_modules(dirname, package = None):
39     """Return a list the names of the test modules in the directory dirname
40    
41     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    
59    
60 bh 292 def main():
61     """Run all the tests in the Thuban test suite"""
62    
63 bernhard 2705 # Turn Thuban's deprecation warnings into errors so they're caught
64 bh 1219 # 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 bh 1377 verbosity = 1
76 bh 1219
77 bh 2642 opts, args = getopt.getopt(sys.argv[1:], 'v',
78 bernhard 2705 ['verbose', 'setdecimalcommalocale', "internal-encoding="])
79 bh 1377 for optchar, value in opts:
80 bh 1476 if optchar in ("-v", "--verbose"):
81 bh 1377 verbosity = 2
82 bh 2642 elif optchar == "--internal-encoding":
83     Thuban.set_internal_encoding(value)
84 bernhard 2705 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 jonathan 1396 else:
90     print>>sys.stderr, "Unknown option", optchar
91 bh 1377
92 bh 2079 # 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 bh 1838 if args:
96     names = args
97     else:
98 bh 2079 # 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 bh 2640 names += find_test_modules("../Extensions/ogr/test",
106     "Extensions.ogr.test")
107 bh 292 suite = unittest.defaultTestLoader.loadTestsFromNames(names)
108 bh 1555 runner = support.ThubanTestRunner(verbosity = verbosity)
109 bh 1601 result = support.execute_as_testsuite(runner.run, suite)
110 bh 292
111     sys.exit(not result.wasSuccessful())
112    
113    
114     if __name__ == "__main__":
115     main()

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26