Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 PKG = 'life_test'
00039 import roslib
00040 roslib.load_manifest(PKG)
00041 
00042 from xml.dom import minidom
00043 
00044 import os, sys
00045 import rospy
00046 
00047 from test_param import *
00048 from test_bay import *
00049 
00050 
00051 def load_rooms_from_file():
00052     filepath = os.path.join(roslib.packages.get_pkg_dir(PKG), 'wg_test_rooms.xml')
00053 
00054     rooms = {}
00055 
00056     try:
00057         doc = minidom.parse(filepath)
00058         rooms_xml = doc.getElementsByTagName('room')
00059         for room_xml in rooms_xml:
00060             hostname = room_xml.attributes['hostname'].value
00061             room = TestRoom(hostname)
00062             for bay in room_xml.getElementsByTagName('bay'):
00063                 room.add_bay(TestBay(bay))
00064                 rooms[hostname] = room
00065 
00066         return rooms
00067     except:
00068         import traceback
00069         rospy.logerr('Caught exception loading rooms data. Exception: %s' % traceback.format_exc())
00070 
00071         return {}
00072   
00073 
00074 def load_tests_from_file(test_xml_path = os.path.join(roslib.packages.get_pkg_dir(PKG), 'tests.xml')):
00075     my_tests = {}
00076 
00077     try:
00078         doc = minidom.parse(test_xml_path)
00079     except IOError:
00080         rospy.logerr('Could not load tests from %s' % test_xml_path)
00081         return {}
00082 
00083     try:
00084         tests = doc.getElementsByTagName('test')
00085         for test_xml in tests:
00086             serial = test_xml.attributes['serial'].value
00087             
00088             my_tst = LifeTest()
00089 
00090             if not my_tst.init_xml(test_xml):
00091                 print >> sys.stderr, "Unable to load test: %s" % str(test_xml)
00092                 return {}
00093 
00094             my_tests.setdefault(serial, []).append(my_tst)
00095                 
00096         return my_tests
00097     except:
00098         import traceback
00099         rospy.logerr('Caught exception parsing test XML. Exception: %s' % traceback.format_exc())
00100         return {}