summaryrefslogtreecommitdiff
path: root/android/scripts/parse-lat.py
blob: 2ecb011649d0a5a609c414a9bed173059c01be8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import json
from base64 import standard_b64decode
from os import mkdir, chdir, path
from optparse import OptionParser
from random import choice
from string import ascii_uppercase
from subprocess import call


if __name__ == '__main__':
    usage = "usage: %prog -f <results file> -t <test name>"
    parser = OptionParser(usage=usage)
    parser.add_option("-f", "--file", dest="filename",
                  help="result file", metavar="FILE")
    parser.add_option("-t", "--testcase", dest="testcase",
                  help="lava-android-test test name")

    (options, args) = parser.parse_args()

    if not options.filename:
        parser.error("Results file is mandatory")
    if not options.testcase:
        parser.error("Test name is mandatory")

    source = file(options.filename, "rb")
    bundle = json.loads(source.read())

    for run in bundle['test_runs']:
        test_id = run['test_id']
        print "total number of results in %s: %s" % (test_id, len(run['test_results']))
        for index, result in enumerate(run['test_results']):
            print "TESTCASE: %s-[%s.%s] - %s (%s)" % (
                options.testcase,
                test_id.replace(" ", "_"),
                result['test_case_id'].replace(" ", "_"),
                result['result'],
                index)
        print "LAVA TEST CASE SECTION FINISHED!"
        if 'attachments' in run:
            attachments_dir_name = ''.join(choice(ascii_uppercase) for _ in range(6))
            mkdir(attachments_dir_name)
            for attachment in run['attachments']:
                print "Extracting %s to %s" % (attachment['pathname'], attachments_dir_name)
                attachment_file = open(
                    path.join(attachments_dir_name,
                              attachment['pathname']),
                    'wb')
                attachment_file.write(standard_b64decode(attachment['content']))
                attachment_file.close()
                chdir(attachments_dir_name)
                call(["lava-test-run-attach",
                      attachment['pathname'],
                      attachment['mime_type']])
                chdir("..")