1+ __author__ = 'k22li'
2+ import os
3+ import urllib
4+ from zipfile import ZipFile
5+ from python_xml_praser import XMLParser
6+
7+ #path = r'http://becim014.rnd.nokia.com:8081/job/Granite-Rfa-regression-test-lanaiSS/107/artifact/test_results/test_results/xml'
8+ class XMLResult (object ):
9+ """
10+ # def __init__(self, pNam = '', jobNum = '', tarDir = ''):
11+ """
12+ def __init__ (self , pNam = '' , jobNum = '' , tarDir = '' ):
13+ print pNam , jobNum , tarDir
14+ jobNum = int (jobNum )
15+ self .tarDir = tarDir
16+ # self.path = r'http://becim014.rnd.nokia.com:8081/job/Granite-Rfa-regression-test-%s/%d/artifact//test_results/xml/*zip*/xml.zip'%(pNam, jobNum)
17+ self .path = r'http://becim014.rnd.nokia.com:8081/job/Granite-Rfa-regression-test-%s/%d/artifact/test_results/xml/*zip*/xml.zip' % (pNam , jobNum )
18+
19+ def __call__ (self , ** kwargs ):
20+ """ """
21+ failureResults = []
22+ caseList = self ._extractFromZipFile (tarDir = self .tarDir )
23+ caseList = [os .path .join (self .tarDir , 'xml' , item ) for item in caseList ]
24+ for item in caseList :
25+ # print item
26+ attributes = XMLParser (file = item )
27+
28+ k = attributes (file = item )
29+ # print k
30+ if 'Failed' == k ['result' ]:
31+ k .update ({'hyperlink' : item })
32+ failureResults .append (k )
33+
34+ return failureResults
35+
36+ def _retrieveXMLToLocal (self ):
37+ """
38+ return the local temp zip file name
39+ """
40+ cachedZip = urllib .urlretrieve (self .path )[0 ]
41+ return cachedZip
42+
43+ def _dumpNameListFromZipFile (self ):
44+ xmlsList = []
45+ cachedZip = self ._retrieveXMLToLocal ()
46+ with ZipFile (cachedZip , 'r' ) as myZip :
47+ xmls = myZip .namelist ()
48+ if 'xml/' in xmls :
49+ xmls .remove ('xml/' )
50+
51+ for xmlNam in xmls :
52+ xmlsList .append (os .path .join (cachedZip , xmlNam ))
53+ return xmlsList
54+
55+ def _extractFromZipFile (self , tarDir = '' ):
56+ """
57+
58+ """
59+ self .zipFile = self ._retrieveXMLToLocal ()
60+ with ZipFile (self .zipFile , 'r' ) as myZip :
61+ myZip .extractall (tarDir )
62+
63+ xmlDir = os .path .join (tarDir , 'xml' )
64+ if os .path .isdir (xmlDir ):
65+ return os .listdir (xmlDir )
66+ else :
67+ return None
68+
69+ if __name__ == '__main__' :
70+
71+ # tarDir = os.path.join('C:\\', 'Temp', 'test_result')
72+ # failureResults = []
73+ # xml = XMLResult(pNam = 'orionDS', jobNum = '222')
74+ # kList = xml._dumpNameListFromZipFile()
75+ #
76+ # caseList = xml._extractFromZipFile(tarDir = tarDir)
77+ # caseList = [os.path.join(tarDir, 'xml', item) for item in caseList]
78+ # for item in caseList:
79+ ## print item
80+ # attributes = XMLParser(file = item)
81+ #
82+ # k = attributes(file = item)
83+ # if 'Failed' == k['result']:
84+ # failureResults.append(k)
85+ ## print k['id'], ' ---> ', k['error']
86+ tarDir = os .path .join ('C:\\ ' , 'Temp' , 'test_result' )
87+ Params = {'pNam' : 'lanaiSS' , 'jobNum' : '107' , 'tarDir' : tarDir }
88+ # Params = ['lanaiSS', 107, tarDir]
89+
90+ t = XMLResult (** Params )
91+ resList = t (** Params )
92+ print resList
0 commit comments