1*cfb92d14SAndroid Build Coastguard Worker#!/usr/bin/env python 2*cfb92d14SAndroid Build Coastguard Workerimport json 3*cfb92d14SAndroid Build Coastguard Workerimport sys 4*cfb92d14SAndroid Build Coastguard Worker 5*cfb92d14SAndroid Build Coastguard Workerif len(sys.argv) > 1: 6*cfb92d14SAndroid Build Coastguard Worker filename = sys.argv[1] 7*cfb92d14SAndroid Build Coastguard Workerelse: 8*cfb92d14SAndroid Build Coastguard Worker filename = './result.json' 9*cfb92d14SAndroid Build Coastguard Worker 10*cfb92d14SAndroid Build Coastguard Worker 11*cfb92d14SAndroid Build Coastguard Workerdef get_key(item): 12*cfb92d14SAndroid Build Coastguard Worker ds = item[0].split('_') 13*cfb92d14SAndroid Build Coastguard Worker no = int(ds[1]) * 10000 + int(ds[2]) * 100 + int(ds[3]) 14*cfb92d14SAndroid Build Coastguard Worker ro = ds[0] 15*cfb92d14SAndroid Build Coastguard Worker return '%d-%s' % (no, ro) 16*cfb92d14SAndroid Build Coastguard Worker 17*cfb92d14SAndroid Build Coastguard Worker 18*cfb92d14SAndroid Build Coastguard Workerresult = json.load(open(filename, 'r')) 19*cfb92d14SAndroid Build Coastguard Workero = open('./result.csv', 'w') 20*cfb92d14SAndroid Build Coastguard Workero.write('Case,Status,Started,Stopped,Reason\n') 21*cfb92d14SAndroid Build Coastguard Workerfor k, v in sorted(result.items(), key=get_key): 22*cfb92d14SAndroid Build Coastguard Worker o.write('%s,%s,%s,%s,%s\n' % ( 23*cfb92d14SAndroid Build Coastguard Worker k, 24*cfb92d14SAndroid Build Coastguard Worker (v['passed'] and 'Pass') or 'Fail', 25*cfb92d14SAndroid Build Coastguard Worker v['started'], 26*cfb92d14SAndroid Build Coastguard Worker v['stopped'], 27*cfb92d14SAndroid Build Coastguard Worker (v['error'] or '').replace('\n', ' '), 28*cfb92d14SAndroid Build Coastguard Worker )) 29