~mrazik/gtester2xunit/pyruntest-fix

« back to all changes in this revision

Viewing changes to gtester2xunit

  • Committer: Martin Mrazik
  • Date: 2012-10-28 10:27:22 UTC
  • Revision ID: martin.mrazik@canonical.com-20121028102722-vtao1ohye8nmxwzy
initial revision

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
from argparse import ArgumentParser
 
3
import libxslt
 
4
import libxml2
 
5
import sys
 
6
 
 
7
XSL_TRANSFORM='/usr/share/gtester2xunit/gtester.xsl'
 
8
#XSL_TRANSFORM='./gtester.xsl'
 
9
 
 
10
 
 
11
def transform_file(input_filename, output_filename):
 
12
    gtester = libxml2.parseFile(XSL_TRANSFORM)
 
13
    style = libxslt.parseStylesheetDoc(gtester)
 
14
    doc = libxml2.parseFile(input_filename)
 
15
    result = style.applyStylesheet(doc, None)
 
16
    result.saveFormatFile(filename=output_filename, format=True)
 
17
 
 
18
 
 
19
def get_output_filename(input_filename):
 
20
    return input_filename
 
21
#    filename, extension = os.path.splitext(input_filename)
 
22
#    return '{filename}-xunit{extension}'.format(filename=filename,
 
23
#                                                 extension=extension)
 
24
 
 
25
def main():
 
26
    parser = ArgumentParser(
 
27
            description="Simple utility that converts xml output of " +
 
28
                        "gtester to xunit output for jenkins")
 
29
    parser.add_argument('-o', '--output', 
 
30
            help="Write output to specified file instead of default")
 
31
    parser.add_argument('files', metavar='FILE', type=str, nargs='+',
 
32
            help="file(s) to transform to xunit format")
 
33
    args = vars(parser.parse_args())
 
34
    for input_filename in args['files']:
 
35
        if not args['output']:
 
36
            output_filename = get_output_filename(input_filename)
 
37
        else:
 
38
            output_filename = args['output']
 
39
        transform_file(input_filename, output_filename)
 
40
    
 
41
sys.exit(main())
 
42
# vim: set syntex=python: