source: exist/trunk/python/elementtree-1.3a6-20070220-badc/unittests/run.py @ 3578

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/exist/trunk/python/elementtree-1.3a6-20070220-badc/unittests/run.py@3578
Revision 3578, 2.9 KB checked in by pjkersha, 11 years ago (diff)

Latest releases from Fredrik Lundh. 10 March release has exclusive C14N support with namespace prefixes.

Line 
1# $Id: run.py 3303 2007-09-13 18:22:40Z fredrik $
2# simple doctest runner
3
4import os, glob, sys
5
6try:
7    import platform
8    platform = platform.platform()
9except ImportError:
10    platform = sys.platform
11
12TESTS = []
13
14for file in glob.glob("unittests/test_*.py"):
15    TESTS.append(os.path.basename(file)[:-3])
16
17TESTS.sort()
18
19if "test_sanity" in TESTS:
20    TESTS.remove("test_sanity")
21    TESTS.insert(0, "test_sanity")
22
23def test():
24
25    import sys
26    sys.path.insert(0, ".")
27    sys.path.insert(1, "unittests")
28
29    import doctest
30
31    # options (use getopt)
32    verbose = 0
33    try:
34        sys.argv.remove("-v"); verbose = 1
35    except ValueError:
36        pass
37
38    tests = []
39    skips = []
40
41    if sys.argv[1:]:
42        for test in sys.argv[1:]:
43            if test[:1] == "-":
44                skips.append(test[1:])
45            else:
46                tests.append(test)
47
48    if not tests:
49        tests = TESTS
50
51    header(verbose)
52
53    for mod in tests:
54        if mod in skips:
55            print "***", "skipping", mod
56            continue
57        try:
58            mod = __import__(mod)
59        except ImportError, v:
60            print "***", "skipping", mod, "(%s)" % v
61            continue
62        print mod.__name__, "..."
63        if hasattr(mod, "setup"):
64            mod.setup()
65        doctest.testmod(mod, verbose=verbose, report=0)
66        if hasattr(mod, "teardown"):
67            mod.teardown()
68
69    if not doctest.master:
70        print "*** no tests executed"
71    else:
72        status = doctest.master.summarize()
73        if status[0]:
74            print "*** %s tests of %d failed." % status
75        else:
76            print "%s tests passed." % status[1]
77
78    print "-" * 72
79
80def header(verbose):
81    import os, time, string, sys
82    import support
83    try:
84        description = open("unittests/info.txt").readlines()
85        print "-" * 72
86        print string.upper(description[0][:-1])
87        del description[0]
88    except IOError:
89        description = None
90    print "-" * 72
91    print "version          ", support.ET.VERSION
92    print "directory        ", os.getcwd()
93    if description:
94        print "description      ", description[0][:-1]
95        for s in description[1:]:
96            print "                 ", s[:-1]
97    print "time             ", time.asctime(time.localtime(time.time()))
98    if os.environ.has_key("USER"):
99        print "run by           ", os.environ["USER"]
100    elif os.environ.has_key("LOGNAME"):
101        print "run by           ", os.environ["LOGNAME"]
102    print "platform         ", platform
103    version = sys.version.split("[")
104    print "                 ", version[0]
105    if len(version) > 1:
106        print "                 ", "[" + version[1]
107    print "-" * 72
108
109if __name__ == "__main__":
110    if 0:
111        from Test import coverage
112        coverage.main("test()")
113    else:
114        test()
Note: See TracBrowser for help on using the repository browser.