Example #1
0
 def _read_one_interface_xml(p_interface_element):
     l_interface_obj = NodeInterfaceData()
     XmlConfigTools.read_base_object_xml(l_interface_obj, p_interface_element)
     l_interface_obj.MacAddress = PutGetXML.get_text_from_xml(p_interface_element, 'MacAddress')
     l_interface_obj.V4Address = PutGetXML.get_text_from_xml(p_interface_element, 'IPv4Address')
     l_interface_obj.V6Address = PutGetXML.get_text_from_xml(p_interface_element, 'IPv6Address')
     return l_interface_obj
Example #2
0
 def read_one_room(p_room_element):
     l_room_obj = RoomData()
     XmlConfigTools.read_base_object_xml(l_room_obj, p_room_element)
     l_room_obj.Comment = PutGetXML.get_text_from_xml(p_room_element, 'Comment')
     l_room_obj.Corner = PutGetXML.get_text_from_xml(p_room_element, 'Corner')
     l_room_obj.Floor = PutGetXML.get_text_from_xml(p_room_element, 'Floor', '1')
     l_room_obj.Size = PutGetXML.get_text_from_xml(p_room_element, 'Size')
     return l_room_obj
Example #3
0
 def test_02_BaseObject(self):
     """Write Base Object XML w/ NO UUID
     """
     l_base_obj = CoreLightingData()
     XmlConfigTools.read_base_object_xml(l_base_obj, self.m_xml.light)
     l_base_obj.Key = 44
     l_xml = XmlConfigTools.write_base_object_xml('Light', l_base_obj, no_uuid = True)
     print(PrettyFormatAny.form(l_xml, 'XML'))
     self.assertEqual(l_xml.attrib['Name'], 'Insteon Light')
     self.assertEqual(l_xml.attrib['Key'], '44')
Example #4
0
 def _read_one_login(p_xml):
     """
     @param p_xml: is the element of one login
     """
     l_obj = LoginData()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     l_obj.LoginFullName = PutGetXML.get_text_from_xml(p_xml, 'FullName')
     l_obj.LoginPasswordCurrent = PutGetXML.get_text_from_xml(p_xml, 'Password')
     l_obj.LoginRole = PutGetXML.get_text_from_xml(p_xml, 'Role')
     return l_obj
Example #5
0
 def test_02_BaseObject(self):
     """Write Base Object XML w/ NO UUID
     """
     l_base_obj = CoreLightingData()
     XmlConfigTools.read_base_object_xml(l_base_obj, self.m_xml.light)
     l_base_obj.Key = 44
     l_xml = XmlConfigTools.write_base_object_xml('Light', l_base_obj)
     print(PrettyFormatAny.form(l_xml, 'XML'))
     self.assertEqual(l_xml.attrib['Name'], TESTING_LIGHT_NAME_0)
     self.assertEqual(l_xml.attrib['Key'], '44')
Example #6
0
 def _read_one_zone(p_xml):
     """
     @param p_xml: XML information for one Zone.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = IrrigationZoneData()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     l_obj.Comment = PutGetXML.get_text_from_xml(p_xml, 'Comment')
     l_obj.Duration = PutGetXML.get_int_from_xml(p_xml, 'Duration', 0)
     # Expand with much more control data
     return l_obj
Example #7
0
 def _read_one_zone(p_xml):
     """
     @param p_xml: XML information for one Zone.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = IrrigationZoneData()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     l_obj.Comment = PutGetXML.get_text_from_xml(p_xml, 'Comment')
     l_obj.Duration = PutGetXML.get_int_from_xml(p_xml, 'Duration', 0)
     #  Expand with much more control data
     return l_obj
Example #8
0
 def _read_one_login(p_xml):
     """
     @param p_xml: is the element of one login
     """
     l_obj = LoginData()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     l_obj.LoginFullName = PutGetXML.get_text_from_xml(p_xml, 'FullName')
     l_obj.LoginPasswordCurrent = PutGetXML.get_text_from_xml(
         p_xml, 'Password')
     l_obj.LoginRole = PutGetXML.get_text_from_xml(p_xml, 'Role')
     LOG.info('Loaded login "{}"'.format(l_obj.LoginFullName))
     return l_obj
Example #9
0
 def test_01_BaseObject(self):
     """Write Base Object XML w/UUID
     """
     l_base_obj = CoreLightingData()
     XmlConfigTools.read_base_object_xml(l_base_obj, self.m_xml.light)
     l_base_obj.Key = 43
     l_uuid = '12345678-fedc-1111-ffff-aaBBccDDeeFF'
     l_base_obj.UUID = l_uuid
     l_xml = XmlConfigTools.write_base_object_xml('Light', l_base_obj)
     print(PrettyFormatAny.form(l_xml, 'XML'))
     self.assertEqual(l_xml.attrib['Name'], 'Insteon Light')
     self.assertEqual(l_xml.attrib['Key'], '43')
     self.assertEqual(l_xml.find('UUID').text, l_uuid)
Example #10
0
 def test_01_BaseObject(self):
     """Write Base Object XML w/UUID
     """
     l_base_obj = CoreLightingData()
     XmlConfigTools.read_base_object_xml(l_base_obj, self.m_xml.light)
     l_base_obj.Key = 43
     l_uuid = '12345678-fedc-1111-ffff-aaBBccDDeeFF'
     l_base_obj.UUID = l_uuid
     l_xml = XmlConfigTools.write_base_object_xml('Light', l_base_obj)
     print(PrettyFormatAny.form(l_xml, 'XML'))
     self.assertEqual(l_xml.attrib['Name'], TESTING_LIGHT_NAME_0)
     self.assertEqual(l_xml.attrib['Key'], '43')
     self.assertEqual(l_xml.find('UUID').text, l_uuid)
Example #11
0
 def _read_one_node_xml(p_node_xml):
     """
     Read the existing XML file (if it exists) and get the node info.
     """
     l_node_obj = NodeData()
     XmlConfigTools.read_base_object_xml(l_node_obj, p_node_xml)
     l_node_obj.ConnectionAddr_IPv4 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV4')
     l_node_obj.ConnectionAddr_IPv6 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV6')
     l_node_obj.NodeRole = PutGetXML.get_int_from_xml(p_node_xml, 'NodeRole')
     try:
         l_node_obj.NodeInterfaces = Xml._read_interfaces_xml(p_node_xml.find('InterfaceSection'))
     except AttributeError as e_err:
         LOG.error('ERROR OneNodeRead error {}'.format(e_err))
     return l_node_obj
Example #12
0
class C4_ReadEmpty(SetupMixin, unittest.TestCase):
    """
    This tests the ConfigTools section
    """

    def setUp(self):
        self.m_pyhouse_obj = SetupMixin.setUp(self, ET.fromstring(xml_data.XML_EMPTY))
        self.m_api = XmlConfigTools()

    def test_01_BaseObject(self):
        l_base_obj = CoreLightingData()
        self.m_api.read_base_object_xml(l_base_obj, self.m_xml.light)
        self.assertEqual(l_base_obj.Name, 'Missing Name')
        self.assertEqual(l_base_obj.Key, 0)
        self.assertEqual(l_base_obj.Active, False)
Example #13
0
class E2_ReadEmpty(SetupMixin, unittest.TestCase):
    """
    This tests the ConfigTools section
    """
    def setUp(self):
        self.m_pyhouse_obj = SetupMixin.setUp(self, ET.fromstring(XML_EMPTY))
        self.m_api = XmlConfigTools()

    def test_01_BaseObject(self):
        l_base_obj = CoreLightingData()
        self.m_api.read_base_object_xml(l_base_obj, self.m_xml.light)
        print(PrettyFormatAny.form(l_base_obj))
        self.assertEqual(l_base_obj.Name, 'None')
        self.assertEqual(l_base_obj.Key, 0)
        self.assertEqual(l_base_obj.Active, False)
Example #14
0
 def _read_one_broker(p_xml):
     """
     @param p_xml: XML information for one Broker.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = MqttBrokerData()
     try:
         XmlConfigTools.read_base_object_xml(l_obj, p_xml)
         l_obj.BrokerAddress = PutGetXML.get_text_from_xml(p_xml, 'BrokerAddress')
         l_obj.BrokerPort = PutGetXML.get_int_from_xml(p_xml, 'BrokerPort')
         l_obj.UserName = PutGetXML.get_text_from_xml(p_xml, 'BrokerUser')
         l_obj.Password = PutGetXML.get_text_from_xml(p_xml, 'BrokerPassword')
     except Exception:
         pass
     return l_obj
Example #15
0
 def _read_one_broker(p_xml):
     """
     @param p_xml: XML information for one Broker.
     @return: an IrrigationZone object filled in with data from the XML passed in
     """
     l_obj = MqttBrokerData()
     try:
         XmlConfigTools.read_base_object_xml(l_obj, p_xml)
         l_obj.BrokerAddress = PutGetXML.get_text_from_xml(p_xml, 'BrokerAddress')
         l_obj.BrokerPort = PutGetXML.get_int_from_xml(p_xml, 'BrokerPort')
         l_obj.UserName = PutGetXML.get_text_from_xml(p_xml, 'BrokerUser')
         l_obj.Password = PutGetXML.get_text_from_xml(p_xml, 'BrokerPassword')
     except Exception:
         pass
     return l_obj
Example #16
0
 def _read_one_irrigation_system(p_xml):
     """
     May contain zero or more zones.
     In general each zone is controlled by a solenoid controlled valve.
     """
     l_sys = IrrigationSystemData()
     l_count = 0
     XmlConfigTools.read_base_object_xml(l_sys, p_xml)
     try:
         l_sys.Comment = PutGetXML.get_text_from_xml(p_xml, 'Comment')
         for l_zone in p_xml.iterfind(ZONE):
             l_obj = Xml._read_one_zone(l_zone)
             l_sys.Zones[l_count] = l_obj
             l_count += 1
     except AttributeError as e_err:
         LOG.error('Zone: {}'.format(e_err))
     return l_sys
Example #17
0
 def _read_one_irrigation_system(p_xml):
     """
     May contain zero or more zones.
     In general each zone is controlled by a solenoid controlled valve.
     """
     l_sys = IrrigationSystemData()
     l_count = 0
     XmlConfigTools.read_base_object_xml(l_sys, p_xml)
     try:
         l_sys.Comment = PutGetXML.get_text_from_xml(p_xml, 'Comment')
         for l_zone in p_xml.iterfind(ZONE):
             l_obj = Xml._read_one_zone(l_zone)
             l_sys.Zones[l_count] = l_obj
             l_count += 1
     except AttributeError as e_err:
         LOG.error('Zone: {}'.format(e_err))
     return l_sys
Example #18
0
 def _read_one_base_schedule(p_schedule_element):
     """Extract schedule information from a schedule xml element.
     """
     l_obj = ScheduleBaseData()
     XmlConfigTools.read_base_object_xml(l_obj, p_schedule_element)
     l_obj.Time = PutGetXML.get_text_from_xml(p_schedule_element, 'Time')
     l_obj.ScheduleType = PutGetXML.get_text_from_xml(p_schedule_element, 'ScheduleType')
     if l_obj.ScheduleType == 'LightingDevice':
         l_obj.ScheduleType = 'Lighting'
     try:
         l_obj.DOW = PutGetXML.get_int_from_xml(l_obj, 'DayOfWeek', 0x7F)
     except:
         l_obj.DOW = 0x7F
     try:
         l_obj.Mode = PutGetXML.get_int_from_xml(l_obj, 'Mode', 0)
     except:
         l_obj.Mode = 0
     return l_obj
Example #19
0
 def read_one_room(p_room_element):
     l_room_obj = RoomData()
     try:
         XmlConfigTools.read_base_object_xml(l_room_obj, p_room_element)
         l_room_obj.Comment = PutGetXML.get_text_from_xml(
             p_room_element, 'Comment')
         l_room_obj.Corner = PutGetXML.get_coords_from_xml(
             p_room_element, 'Corner')
         l_room_obj.Floor = PutGetXML.get_text_from_xml(
             p_room_element, 'Floor', '1')
         l_room_obj.LastUpdate = PutGetXML.get_date_time_from_xml(
             p_room_element, 'LastUpdate')
         l_room_obj.Size = PutGetXML.get_coords_from_xml(
             p_room_element, 'Size')
         l_room_obj.RoomType = PutGetXML.get_text_from_xml(
             p_room_element, 'RoomType')
     except:
         LOG.warn('Incomplete data for room {}'.format(l_room_obj.Name))
     return l_room_obj
Example #20
0
    def _read_one_base_schedule(p_schedule_element):
        """Extract schedule information from a Base schedule xml element.

        ScheduleBaseData()
        """
        l_obj = ScheduleBaseData()
        XmlConfigTools.read_base_object_xml(l_obj, p_schedule_element)
        try:
            l_obj.DOW = PutGetXML.get_int_from_xml(l_obj, 'DayOfWeek', 0x7F)
        except:
            l_obj.DOW = 0x7F
        try:
            l_obj.ScheduleMode = PutGetXML.get_text_from_xml(
                l_obj, 'ScheduleMode', 0)
        except:
            l_obj.ScheduleMode = 'Home'
        l_obj.ScheduleType = PutGetXML.get_text_from_xml(
            p_schedule_element, 'ScheduleType')
        if l_obj.ScheduleType == 'LightingDevice':
            l_obj.ScheduleType = 'Lighting'
        l_obj.Time = PutGetXML.get_text_from_xml(p_schedule_element, 'Time')
        return l_obj
Example #21
0
class E1_Read(SetupMixin, unittest.TestCase):
    """
    This tests the ConfigTools section
    """
    def setUp(self):
        self.m_pyhouse_obj = SetupMixin.setUp(self, ET.fromstring(XML_LONG))
        self.m_api = XmlConfigTools()

    def test_01_BaseObject(self):
        l_base_obj = CoreLightingData()
        self.m_api.read_base_object_xml(l_base_obj, self.m_xml.light)
        self.assertEqual(l_base_obj.Name, TESTING_LIGHT_NAME_0)
        self.assertEqual(l_base_obj.Key, 0)
        self.assertEqual(l_base_obj.Active, True)
        # self.assertEqual(l_base_obj.UUID, 'c15f7d76-092e-11e4-bffa-b827eb189eb4', 'Bad UUID')

    def test_02_readBaseObject(self):
        l_base_obj = CoreLightingData()
        self.m_api.read_base_object_xml(l_base_obj, self.m_xml.controller)
        self.assertEqual(l_base_obj.Name, 'Insteon Serial Controller')
        self.assertEqual(l_base_obj.Key, 0)
        self.assertEqual(l_base_obj.Active, True)
Example #22
0
class C3_Read(SetupMixin, unittest.TestCase):
    """
    This tests the ConfigTools section
    """

    def setUp(self):
        self.m_pyhouse_obj = SetupMixin.setUp(self, ET.fromstring(xml_data.XML_LONG))
        self.m_api = XmlConfigTools()

    def test_01_BaseObject(self):
        l_base_obj = CoreLightingData()
        self.m_api.read_base_object_xml(l_base_obj, self.m_xml.light)
        self.assertEqual(l_base_obj.Name, 'Insteon Light')
        self.assertEqual(l_base_obj.Key, 0)
        self.assertEqual(l_base_obj.Active, True)
        # self.assertEqual(l_base_obj.UUID, 'c15f7d76-092e-11e4-bffa-b827eb189eb4', 'Bad UUID')

    def test_02_readBaseObject(self):
        l_base_obj = CoreLightingData()
        self.m_api.read_base_object_xml(l_base_obj, self.m_xml.controller)
        self.assertEqual(l_base_obj.Name, 'Insteon Serial Controller')
        self.assertEqual(l_base_obj.Key, 0)
        self.assertEqual(l_base_obj.Active, True)
Example #23
0
 def read_computer_xml(p_pyhouse_obj):
     """
     The XML for all the sections within the division are read by the appropriate sub-module.
     Therefore, there is not much to do here.
     """
     l_xml = p_pyhouse_obj.Xml.XmlRoot.find(COMPUTER_DIVISION)
     if l_xml is None:
         l_obj = Xml.create_computer(p_pyhouse_obj)
         p_pyhouse_obj.Computer = l_obj
     else:
         l_obj = XmlConfigTools.read_base_object_xml(
             p_pyhouse_obj.Computer, l_xml)
         l_msg = 'Resuming Computers UUID is {}'.format(l_obj.UUID)
         LOG.warn(l_msg)
     return l_obj
Example #24
0
 def _read_base(p_xml):
     l_obj = HouseInformation()
     XmlConfigTools.read_base_object_xml(l_obj, p_xml)
     return l_obj
Example #25
0
 def _read_base(p_pool_element):
     l_pool_obj = PoolData()
     XmlConfigTools.read_base_object_xml(l_pool_obj, p_pool_element)
     return l_pool_obj
Example #26
0
 def _read_base(p_pool_element):
     l_pool_obj = PoolData()
     XmlConfigTools.read_base_object_xml(l_pool_obj, p_pool_element)
     return l_pool_obj