github-ci-crawller/CiJobTestFilesParser.py

52 lines
1.4 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import numpy as np
from numpy import *
import csv
import re
import MySQLdb
logging.basicConfig(format="%(asctime)s : %(levelname)s : %(message)s", level=logging.INFO)
def ParseTestFiles(repo_id,job_id,builds_id,test_id,commands,cur_i):
#parse rule
file_rule = re.compile(r"([0-9a-zA-Z._/\-]*).rb")
#test data
files = re.findall(file_rule,commands)
for file in files:
print "file:"+str(file)
if len(file)>10:
try:
query = "insert into ci_jobs_tests_file_yu (repo_id,builds_id,job_id,test_id,running_file)" \
"values(%s,%s,%s,%s,\"%s.rb\")"%(repo_id,builds_id,job_id,test_id,file)
cur_i.execute(query)
except MySQLdb.Error, e:
print "Mysql Error!", e;
##main###
#job_id=35469369
conn = MySQLdb.connect(host='localhost',user='root',passwd='',db='ci')
cur = conn.cursor()
conn_i = MySQLdb.connect(host='localhost',user='root',passwd='',db='ci')
cur_i = conn_i.cursor()
try:
cur.execute('select repo_id,builds_id,job_id,test_id,running_command from ci_jobs_tests_yu')
data = cur.fetchone()
while data != None:
print "job_id:"+str(data[2])
print "test_id:"+str(data[3])
try:
GetTestFiles(data[0],data[1],data[2],data[3],data[4],cur_i)
except UnboundLocalError, e:
continue
data = cur.fetchone()
except MySQLdb.Error, e:
print "Mysql Error!", e;
cur_i.close()
conn_i.close()
cur.close()
conn.close()