for field in raw: fields[field] = index index += 1 first_line = False print 'bug_id;field;login;when;new;final;new_reso;final_reso;tt_prod' continue # data raw = curline[:-1].split(';') bug_id = raw[fields['bug_id']] # find triage phase # process if one was found # the start time of a phase, -1 means not found start point(UNCONFIRMED) yet left_status_time = -1 resolutions = lib.build_act_packs(raw[fields['resolution']]) resolution_final = resolutions[-1].value statuses = lib.build_act_packs(raw[fields['status']]) status_final = statuses[-1].value products = lib.build_act_packs(raw[fields['product']]) # answer answer = '' if resolution_final == 'FIXED': answer = 'confirm' elif resolution_final == '---': # not resolved yet, skip continue else: answer = 'reject'
# make field index hash if first_line: raw = curline[:-1].split(lib.sep) index = 0 for field in raw: fields[field] = index index += 1 first_line = False print 'bug_id;field;login;when;old;new;final;tt_prod' continue # data raw = curline[:-1].split(lib.sep) bug_id = raw[fields['bug_id']] # prepare act_pack resos = lib3.build_act_packs(raw[fields['resolution']]) versions = lib3.build_act_packs(raw[fields['version']]) oses = lib3.build_act_packs(raw[fields['os']]) severities = lib3.build_act_packs(raw[fields['severity']]) priorities = lib3.build_act_packs(raw[fields['priority']]) products = lib3.build_act_packs(raw[fields['product']]) # find final values (answers of the fields) version_answer = versions[-1].value os_answer = oses[-1].value severity_answer = severities[-1].value priority_answer = priorities[-1].value # find triage phase # process if one was found # the start time of a phase, -1 means not found start point(UNCONFIRMED) yet left_status_time = -1
if first_line: raw = curline[:-1].split(lib.sep) index = 0 for field in raw: fields[field] = index index += 1 first_line = False print 'bug_id' + lib.sep + 'field' + lib.sep + 'login' + lib.sep + 'when' + lib.sep + 'old' + lib.sep + 'new' + lib.sep + 'final' continue # data raw = curline[:-1].split(lib.sep) bug_id = raw[fields['bug_id']] # prepare act_pack # build the array from string resos = lib3.build_act_packs(raw[fields['resolution']]) product = lib3.build_act_packs(raw[fields['product']]) statuses = lib3.build_act_packs(raw[fields['status']]) # find final values (answers of the fields) product_answer = product[-1].value # now scan the statuses and find traige activities # traige activities are modifications between UNCONFIRMED and NEW/RESOLVED and # when comfirming the bug (set status to NEW), several activities are made to varifiy each fields # strategy: we scan the statues to find the point of UNCONFIRMED (left) and ASSIGNED/NEW/RESOLVED (right), then extract activities between # we has not find the left yet, so set it -1 left_status_time = -1 has_output = False