PageRenderTime 303ms CodeModel.GetById 100ms app.highlight 4ms RepoModel.GetById 157ms app.codeStats 0ms

/Demo/parser/test_parser.py

http://unladen-swallow.googlecode.com/
Python | 48 lines | 36 code | 6 blank | 6 comment | 4 complexity | 405591025fb2694062c2f3e2d046ad3e MD5 | raw file
 1#! /usr/bin/env python
 2#  (Force the script to use the latest build.)
 3#
 4#  test_parser.py
 5
 6import parser, traceback
 7
 8_numFailed = 0
 9
10def testChunk(t, fileName):
11    global _numFailed
12    print '----', fileName,
13    try:
14        ast = parser.suite(t)
15        tup = parser.ast2tuple(ast)
16        # this discards the first AST; a huge memory savings when running
17        # against a large source file like Tkinter.py.
18        ast = None
19        new = parser.tuple2ast(tup)
20    except parser.ParserError, err:
21        print
22        print 'parser module raised exception on input file', fileName + ':'
23        traceback.print_exc()
24        _numFailed = _numFailed + 1
25    else:
26        if tup != parser.ast2tuple(new):
27            print
28            print 'parser module failed on input file', fileName
29            _numFailed = _numFailed + 1
30        else:
31            print 'o.k.'
32
33def testFile(fileName):
34    t = open(fileName).read()
35    testChunk(t, fileName)
36
37def test():
38    import sys
39    args = sys.argv[1:]
40    if not args:
41        import glob
42        args = glob.glob("*.py")
43        args.sort()
44    map(testFile, args)
45    sys.exit(_numFailed != 0)
46
47if __name__ == '__main__':
48    test()