~testdoc-dev/testdoc/trunk.git

« back to all changes in this revision

Viewing changes to bin/testdoc

  • Committer: Jonathan Lange
  • Date: 2010-09-08 11:42:24 UTC
  • mfrom: (14.1.10)
  • Revision ID: git-v1:f0940e6c8fd4eecfe0d9de582f5daa0eaf6c695f
More formatters!

 * REST, Moin and Shiny formatters
 * Bug 120141 is fixed, testdoc no longer generates documentation for 
   imported tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
    return obj
28
28
 
29
29
 
 
30
def make_options():
 
31
    from optparse import OptionParser
 
32
    parser = OptionParser(
 
33
        usage="usage: %prog [options] MODULE_NAME [MODULE_NAME ...]")
 
34
    format_choices = sorted(formats.keys())
 
35
    parser.add_option("-f", "--format", dest="format",
 
36
        choices=format_choices, metavar="FORMAT",
 
37
        help="Format to emit.  One of: " + ', '.join(format_choices),
 
38
        default="moin")
 
39
    return parser
 
40
 
 
41
 
 
42
formats = {
 
43
    'moin': formatter.WikiFormatter,
 
44
    'rest': formatter.ReSTFormatter,
 
45
    'shiny': formatter.ShinyFormatter,
 
46
    }
 
47
 
 
48
 
30
49
def main():
31
 
    if len(sys.argv) != 2:
32
 
        print usage()
33
 
        sys.exit(2)
34
 
    try:
35
 
        module = string_to_module(sys.argv[1])
36
 
    except:
37
 
        print usage()
38
 
        raise
39
 
    format = formatter.WikiFormatter(sys.stdout)
 
50
    parser = make_options()
 
51
    (options, args) = parser.parse_args()
 
52
    format = formats[options.format](sys.stdout)
40
53
    doc = documenter.Documenter(format)
41
 
    finder.find_tests(doc, module)
 
54
    for arg in args:
 
55
        module = string_to_module(arg)
 
56
        try:
 
57
            finder.find_tests(doc, module)
 
58
        except IOError, e:
 
59
            import errno
 
60
            if e.errno == getattr(errno, 'EPIPE', None):
 
61
                sys.stderr.write('testdoc: broken pipe\n')
 
62
                return
 
63
            raise
42
64
 
43
65
 
44
66
if __name__ == '__main__':