def _read_base_device(p_pyhouse_obj, p_xml): """ @param p_xml: is the XML Element for the entire device @param p_version: is some helper data to get the correct information from the config file. @return: a Controller data object with the base info filled in """ l_obj = ControllerData() # Create an empty controller object. l_obj = deviceXML.read_base_device_object_xml(p_pyhouse_obj, l_obj, p_xml) l_obj.DeviceType = 1 l_obj.DeviceSubType = 2 return l_obj
def test_04_MessageObj(self): """ Add an object. """ l_data = ControllerData() l_data.Name = 'Mqtt Schedule Object' l_data.LightName = 'Test Light' l_data.RoomName = 'Living Room' l_data.Comment = 'The formal Living Room.' l_message = _make_message(self.m_pyhouse_obj, l_data) # print(PrettyFormatAny.form(l_message, 'C2-04-A - Message', 80)) self.assertEqual(self.jsonPair(l_message, 'Sender'), self.m_pyhouse_obj.Computer.Name) self.assertSubstring('DateTime', l_message) self.assertEqual(self.jsonPair(l_message, 'Name'), l_data.Name)
def saveControllerData(self, p_json): """A new/changed controller is returned. Process it and update the internal data via controller.py """ l_json = json_tools.decode_json_unicode(p_json) l_ix = int(l_json['Key']) l_delete = l_json['Delete'] if l_delete: try: del self.m_pyhouse_obj.House.Lighting.Controllers[l_ix] except AttributeError: LOG.error("web_controllers - Failed to delete - JSON: {}".FORMAT(l_json)) return l_obj = ControllerData() try: l_obj = self.m_pyhouse_obj.House.Lighting.Controllers[l_ix] except KeyError: LOG.warning('Creating a new controller {}'.format(l_ix)) web_utils.get_base_info(l_obj, l_json) l_obj.Comment = l_json['Comment'] l_obj.DeviceFamily = l_json['DeviceFamily'] l_obj.DeviceType = 1 l_obj.DeviceSubType = 2 l_obj.InterfaceType = l_json['InterfaceType'] l_obj.Port = l_json['Port'] if l_obj.InterfaceType == 'Serial': l_obj.BaudRate = l_json['BaudRate'] web_family.get_family_json_data(l_obj, l_json) web_utils.get_room_info(l_obj, l_json) self.m_pyhouse_obj.House.Lighting.Controllers[l_ix] = l_obj LOG.info('Controller Added - {}'.format(l_obj.Name))
def test_02_Write(self): l_list = list(self.m_xml.controller_sect.iterfind('Controller')) l_xml = l_list[1] l_dev = ControllerData() upbXML.ReadXml(l_dev, l_xml) l_out = ET.Element('Testing') upbXML.WriteXml(l_out, l_dev)
def setUp(self, p_root): self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root) self.m_xml = SetupPyHouseObj().BuildXml(p_root) self.m_button_obj = ButtonData() self.m_controller_obj = ControllerData() self.m_light_obj = LightData() self.m_api = LightingCoreAPI()
def test_01_Read(self): l_list = list(self.m_xml.controller_sect.iterfind('Controller')) l_xml = l_list[1] l_dev = ControllerData() upbXML.ReadXml(l_dev, l_xml) self.assertEqual(l_dev.UPBAddress, int(TESTING_UPB_ADDRESS)) self.assertEqual(l_dev.UPBNetworkID, int(TESTING_UPB_NETWORK)) self.assertEqual(l_dev.UPBPassword, int(TESTING_UPB_PASSWORD))
def setUp(self, p_root): self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root) self.m_xml = SetupPyHouseObj().BuildXml(p_root) self.m_family = familyAPI(self.m_pyhouse_obj).LoadFamilyTesting() self.m_pyhouse_obj.House.FamilyData = self.m_family self.m_api = controllerAPI() self.m_controller_obj = ControllerData() self.m_version = '1.4.0'
def test_2_BaseController(self): """ Read in the xml file and fill in the lights """ l_obj = ControllerData() l_base = self.m_api.read_base_device_object_xml( self.m_pyhouse_obj, l_obj, self.m_xml.controller) l_xml = self.m_api.write_base_device_object_xml('Light', l_base) self.assertEqual(l_xml.attrib['Name'], 'Insteon Serial Controller') self.assertEqual(l_xml.attrib['Key'], '0') self.assertEqual(l_xml.attrib['Active'], 'True')
def test_01_Interface(self): l_ctlr = self.m_xml.controller_sect[1] l_device = ControllerData() l_obj = lightingcoreAPI.read_core_lighting_xml(l_device, l_ctlr, self.m_version) print(PrettyFormatAny.form(l_obj, 'L L')) L_interface = usbXML.read_interface_xml(l_ctlr) stuff_new_attrs(l_obj, L_interface) print(PrettyFormatAny.form(l_obj, 'L L')) self.assertEqual(l_obj.Vendor, int(TESTING_USB_VENDOR)) self.assertEqual(l_obj.Product, int(TESTING_USB_PRODUCT))
def _read_base_device(p_pyhouse_obj, p_xml): """ @param p_xml: is the XML Element for the entire device @param p_version: is some helper data to get the correct information from the config file. @return: a Controller data object with the base info filled in """ l_obj = ControllerData() # Create an empty controller object. l_obj = LightingCoreAPI.read_core_lighting_xml(p_pyhouse_obj, l_obj, p_xml) # l_obj.DeviceSubType = 1 return l_obj
def test_02_BaseController(self): """ Read in the xml file and fill in the lights """ l_obj = ControllerData() l_base = self.m_api.read_base_device_object_xml( self.m_pyhouse_obj, l_obj, self.m_xml.controller) self.assertEqual(l_base.Name, 'Insteon Serial Controller') self.assertEqual(l_base.Key, 0, 'Bad Key') self.assertEqual(l_base.Active, True) self.assertEqual(l_base.Comment, TESTING_DEVICE_COMMENT) self.assertEqual(l_base.RoomCoords.X_Easting, float(TESTING_DEVICE_ROOM_X)) self.assertEqual(l_base.DeviceFamily, TESTING_DEVICE_FAMILY_INSTEON) self.assertEqual(l_base.RoomName, TESTING_DEVICE_ROOM_NAME)
def _read_one_controller_xml(p_pyhouse_obj, p_xml): """ Load all the xml for one controller. Base Device, Controller, Family and Interface """ try: l_obj = Utility._read_base_device(p_pyhouse_obj, p_xml) Utility._read_controller_data(p_pyhouse_obj, l_obj, p_xml) Utility._read_interface_data(p_pyhouse_obj, l_obj, p_xml) Utility._read_family_data(p_pyhouse_obj, l_obj, p_xml) except Exception as e_err: LOG.error('ERROR - ReadOneController - {0:}'.format(e_err)) l_obj = ControllerData() return l_obj
def test_01_Interface(self): l_ctlr = self.m_xml.controller_sect[1] l_device = ControllerData() l_obj = lightingcoreAPI.read_core_lighting_xml(l_device, l_ctlr, self.m_version) L_interface = usbXML.read_interface_xml(l_ctlr) stuff_new_attrs(l_obj, L_interface) # l_xml = lightingcoreAPI.write_core_lighting_xml( 'TestController', l_obj) usbXML.write_interface_xml(l_xml, l_obj) print(PrettyFormatAny.form(l_xml, 'XML')) self.assertEqual(l_xml.attrib['Name'], TESTING_CONTROLLER_NAME_1) self.assertEqual(l_xml.attrib['Key'], TESTING_CONTROLLER_KEY_1) self.assertEqual(l_xml.attrib['Active'], TESTING_CONTROLLER_ACTIVE_1) self.assertEqual(l_xml.find('Vendor').text, TESTING_USB_VENDOR) self.assertEqual(l_xml.find('Product').text, TESTING_USB_PRODUCT)
def test_04_MessageObj(self): """ Add an object. """ l_data = ControllerData() l_data.Name = 'Mqtt Schedule Object' l_data.LightName = 'Test Light' l_data.RoomName = 'Living Room' l_data.Comment = 'The formal Living Room.' l_message = Util._make_message(self.m_pyhouse_obj, l_data) # print(PrettyFormatAny.form(l_message, 'Message', 80)) self.assertEqual(self.jsonPair(l_message, 'Sender'), self.m_pyhouse_obj.Computer.Name) self.assertSubstring('DateTime', l_message) self.assertEqual(self.jsonPair(l_message, 'Name'), l_data.Name)
def _fake_params(self): l_obj = ControllerData() l_obj.BaudRate = 19200 return l_obj
def setUp(self): self.m_controller_obj = ControllerData() self.m_controller_obj._Queue = Queue.Queue(300)
def setUp(self): self.m_api = DecodeResponses() self.m_controller_obj = ControllerData() self.m_controller_obj._Message = TEST_MESSAGE
def setUp(self, p_root): self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root) self.m_xml = SetupPyHouseObj().BuildXml(p_root) self.m_controller_obj = ControllerData() self.m_controller_obj.InterfaceType = 'Serial' self.m_version = '1.4.0'
def setUp(self, p_root): self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root) self.m_xml = SetupPyHouseObj().BuildXml(p_root) self.m_obj = ControllerData() self.inst = Util
def setUp(self): SetupMixin.setUp(self, ET.fromstring(XML_LONG)) self.m_ctrlr = ControllerData()
def saveControllerData(self, p_json): """A new/changed controller is returned. Process it and update the internal data via controller.py """ l_json = json_tools.decode_json_unicode(p_json) l_controller_ix = int(l_json['Key']) l_delete = l_json['Delete'] if l_delete: try: del self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] except AttributeError: LOG.error("web_controllers - Failed to delete - JSON: {}".FORMAT(l_json)) return try: l_obj = self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] except KeyError: l_obj = ControllerData() l_obj.Name = l_json['Name'] l_obj.Active = l_json['Active'] l_obj.Key = l_controller_ix l_obj.Comment = l_json['Comment'] l_obj.RoomCoords = l_json['RoomCoords'] l_obj.IsDimmable = l_json['IsDimmable'] l_obj.DeviceFamily = l_json['DeviceFamily'] l_obj.RoomName = l_json['RoomName'] l_obj.LightingType = l_json['LightingType'] l_obj.UUID = l_json['UUID'] l_obj.InterfaceType = l_json['InterfaceType'] l_obj.Port = l_json['Port'] if l_obj.DeviceFamily == 'Insteon': Insteon_utils.Util().get_json_data(l_obj, l_json) elif l_obj.DeviceFamily == 'UPB': l_obj.UPBAddress = l_json['UPBAddress'] l_obj.UPBPassword = l_json['UPBPassword'] l_obj.UPBNetworkID = l_json['UPBNetworkID'] if l_obj.InterfaceType == 'Serial': l_obj.BaudRate = l_json['BaudRate'] self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] = l_obj LOG.info('Controller Added - {}'.format(l_obj))
def setUp(self): SetupMixin.setUp(self, ET.fromstring(XML_LONG)) self.m_pyhouse_obj.House.FamilyData = familyAPI().build_lighting_family_info() self.m_controller_obj = ControllerData()
def saveControllerData(self, p_json): """A new/changed controller is returned. Process it and update the internal data via controller.py """ l_json = json_tools.decode_json_unicode(p_json) l_controller_ix = int(l_json['Key']) l_delete = l_json['Delete'] if l_delete: try: del self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] except AttributeError: print("web_controllers - Failed to delete - JSON: {0:}".FORMAT(l_json)) return try: l_obj = self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] except KeyError: l_obj = ControllerData() l_obj.Name = l_json['Name'] l_obj.Active = l_json['Active'] l_obj.Key = l_controller_ix l_obj.Comment = l_json['Comment'] l_obj.RoomCoords = l_json['RoomCoords'] l_obj.IsDimmable = l_json['IsDimmable'] l_obj.DeviceFamily = l_json['DeviceFamily'] l_obj.RoomName = l_json['RoomName'] l_obj.LightingType = l_json['LightingType'] l_obj.UUID = l_json['UUID'] l_obj.InterfaceType = l_json['InterfaceType'] l_obj.Port = l_json['Port'] if l_obj.DeviceFamily == 'Insteon': Insteon_utils.Util().get_json_data(l_obj, l_json) elif l_obj.DeviceFamily == 'UPB': l_obj.UPBAddress = l_json['UPBAddress'] l_obj.UPBPassword = l_json['UPBPassword'] l_obj.UPBNetworkID = l_json['UPBNetworkID'] if l_obj.InterfaceType == 'Serial': l_obj.BaudRate = l_json['BaudRate'] self.m_pyhouse_obj.House.Lighting.Controllers[l_controller_ix] = l_obj LOG.info('Controller Added - {}'.format(l_obj))
def setUp(self, p_root): self.m_pyhouse_obj = SetupPyHouseObj().BuildPyHouseObj(p_root) self.m_xml = SetupPyHouseObj().BuildXml(p_root) self.m_controller_obj = ControllerData() self.m_ctlr_api = controllerAPI() self.m_version = '1.4.0'