source: trunk/anuga_work/shallow_water_balanced_steve/test_all.py @ 8813

Last change on this file since 8813 was 7573, checked in by steve, 15 years ago

Committing a version of shallow_water_balanced which passes it unit test
using a version of edge limiting which doesn't limit boundary edges. THis
is useful to allow linear functions to be reconstructed.

Had to play with the transmissive BC and use centroid values which is
set via domain set_centroid_transmissive_bc

File size: 2.1 KB
Line 
1"""Regression testing framework
2This module will search for scripts in the same directory named
3test_*.py.  Each such script should be a test suite that tests a
4module through PyUnit. This script will aggregate all
5found test suites into one big test suite and run them all at once.
6"""
7
8# Author: Mark Pilgrim
9# Modified by Ole Nielsen
10
11import unittest
12import os
13
14
15#List files that should be excluded from the testing process.
16#E.g. if they are known to fail and under development
17exclude = [] 
18
19
20def get_test_files(path):
21
22    import sys
23
24    files = os.listdir(path)
25
26    #Check sub directories
27    test_files = []
28    for file in files:
29        if os.path.isdir(file):
30            sys.path.append(file)
31            #print 'Recursing into', file
32            test_files += get_test_files(path + os.sep + file)
33        elif file[:5] == 'test_' and file[-2:] == 'py':
34            #print 'Appending', file
35            test_files.append(file)
36        else:
37            pass
38    return test_files
39
40
41
42def regressionTest():
43    import sys, os, re, unittest
44    path = os.path.split(sys.argv[0])[0] or os.getcwd()
45
46
47    files = get_test_files(path)
48
49
50
51    #test = re.compile('^test_[\w]*.py$', re.IGNORECASE)
52    #files = filter(test.search, files)
53
54
55    try:
56        files.remove(__file__)  #Remove self from list (Ver 2.3. or later)
57    except:
58        files.remove('test_all.py')
59
60    print 'Testing:'
61    for file in files:
62        print '  ' + file
63
64    if globals().has_key('exclude'):
65        for file in exclude:
66            files.remove(file)
67            print 'WARNING: File '+ file + ' excluded from testing'
68
69
70    filenameToModuleName = lambda f: os.path.splitext(f)[0]
71    #print "files",files
72    moduleNames = map(filenameToModuleName, files)
73    #print "moduleNames",moduleNames
74    modules = map(__import__, moduleNames)
75    load = unittest.defaultTestLoader.loadTestsFromModule
76    return unittest.TestSuite(map(load, modules))
77
78################################################################################
79
80if __name__ == '__main__':   
81    suite = regressionTest()
82    runner = unittest.TextTestRunner(verbosity=1)
83    runner.run(suite)
Note: See TracBrowser for help on using the repository browser.