blob: 9a2321c5c27b7524ad720461b91caf5918699ed6 [file] [log] [blame]
adminbae64d82013-08-01 10:50:15 -07001#/usr/bin/env python
2'''
3Created on 07-Jan-2013
4
5@author: Raghav Kashyap(raghavkashyap@paxterrasolutions.com)
6
7 TestON is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 2 of the License, or
10 (at your option) any later version.
11
12 TestON is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with TestON. If not, see <http://www.gnu.org/licenses/>.
19
20
21'''
22
23import xmldict
24import re
25
26class xmlparser :
27
28 def __init__(self) :
29 self.default = ''
30
31 def parse(self,fileName) :
32 '''
33 This will parse the params or topo or cfg file and return content in the file as Dictionary
34 '''
35 self.fileName = fileName
36 matchFileName = re.match(r'(.*)\.(params|topo|cfg)', self.fileName, re.M | re.I)
37 if matchFileName:
38 xml = open(fileName).read()
39 try :
40 parsedInfo = xmldict.xml_to_dict(xml)
41 return parsedInfo
42 except :
43 print "There is no such file to parse " + fileName
44 else :
45 print "file name is not correct"
46
47 def parseParams(self,paramsPath):
48 '''
49 It will take the params file path and will return the params dictionary
50 '''
51 paramsPath = re.sub("\.","/",paramsPath)
52 paramsPath = re.sub("tests|examples","",paramsPath)
53 params = self.parse(main.tests_path+paramsPath+".params")
54 paramsAsString = str(params)
55 return eval(paramsAsString)
56
57 def parseTopology(self,topologyPath):
58 '''
59 It will take topology file path and will return topology dictionary
60 '''
61 topologyPath = re.sub("\.","/",topologyPath)
62 topologyPath = re.sub("tests|examples","",topologyPath)
63 topology = self.parse(main.tests_path+"/"+topologyPath+".topo")
64 topoAsString = str(topology)
65 return eval(topoAsString)
66