Go to the documentation of this file.00001 import os, sys
00002 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
00003
00004
00005 import rospkg
00006 import unittest
00007 import xml.etree.ElementTree as ET
00008 import XmlHandler as xml
00009
00010
00011 class XmlHandler_Testing(unittest.TestCase):
00012 def setUp(self):
00013 self.xml_dir = rospkg.RosPack().get_path('tele_dir') + "/src/Configs/"
00014 self.topic = ET.Element("topic", {'id': '1'} )
00015 name = ET.Element("name")
00016 msg_type = ET.Element("msg_type")
00017 name.text = "/cmd_vel"
00018 msg_type.text = "std_msgs/Empty"
00019 self.topic.insert(0,name)
00020 self.topic.insert(1,msg_type)
00021
00022 self.buttons = ET.Element("buttons")
00023 button = ET.Element("button")
00024 key = ET.Element("key")
00025 key.text = 'F'
00026 b_message = ET.Element("message")
00027 b_message.text = '1'
00028 b_topic = ET.Element("topic")
00029 b_topic.text = '1'
00030
00031 self.message = ET.Element("message", {'id': '1'})
00032 message_description = ET.Element("description")
00033 message_description.text = "Turn on"
00034 message_type = ET.Element("type")
00035 message_type.text = "std_msgs/Empty"
00036 message_content = ET.Element("content")
00037 message_content.text = ""
00038 self.message.insert(0, message_description)
00039 self.message.insert(1, message_type)
00040 self.message.insert(2, message_content)
00041
00042 button.insert(0, key)
00043 button.insert(1, b_message)
00044 button.insert(2, b_topic)
00045 self.buttons.insert(0, button)
00046
00047 def test_has_button(self):
00048 self.assertEqual(1, len(self.buttons.findall("button")))
00049
00050 def test_delete_key_by_topic(self):
00051 list = xml.delete_key_by_topic(self.topic, self.buttons)
00052 self.assertEqual(1, len(list))
00053 self.assertEqual(0, len(self.buttons.findall("button")))
00054
00055 def test_delete_key_by_message(self):
00056 list = xml.delete_key_by_message(self.message, self.buttons)
00057 self.assertEqual(1, len(list))
00058 self.assertEqual(0, len(self.buttons.findall("button")))
00059
00060 def test_create_message(self):
00061 test_message = xml.createMessage(1, "Turn on", "std_msgs/Empty", "")
00062 self.assertEqual(self.message.attrib['id'], test_message.attrib['id'])
00063 self.assertEqual(self.message.find('description').text, test_message.find('description').text)
00064 self.assertEqual(self.message.find('type').text, test_message.find('type').text)
00065 self.assertEqual(self.message.find('content').text, test_message.find('content').text)
00066
00067 def test_create_topic(self):
00068 test_topic = xml.createTopic(1, "/cmd_vel", "std_msgs/Empty")
00069 self.assertEqual(self.topic.attrib['id'], test_topic.attrib['id'])
00070 self.assertEqual(self.topic.find('name').text, test_topic.find('name').text)
00071 self.assertEqual(self.topic.find('msg_type').text, test_topic.find('msg_type').text)
00072
00073 def test_validator(self):
00074 tree = ET.ElementTree()
00075 file = ET.Element("xml")
00076 tree._setroot(file)
00077 self.assertEquals(True ,xml.xml_validator(self.xml_dir + "default_config.xml"))
00078 self.assertEqual(False, xml.validator(tree))
00079
00080
00081 if __name__ == '__main__':
00082 unittest.main()