def paste_node(self, node): parent = self.modeler.get_current_node() try: added_nodes = copy_node(parent, node) except Exception as ex: self.show_error(ex) raise self.new_nodes.extend(added_nodes) self.modeler.tree_ui.reload_current() self.modeler.show_refs() self.modified = True
def test_copy_node(self): dev_t = self.opc.nodes.base_data_type.add_object_type(0, "MyDevice") v_t = dev_t.add_variable(0, "sensor", 1.0) p_t = dev_t.add_property(0, "sensor_id", "0340") ctrl_t = dev_t.add_object(0, "controller") prop_t = ctrl_t.add_property(0, "state", "Running") # Create device sutype devd_t = dev_t.add_object_type(0, "MyDeviceDervived") v_t = devd_t.add_variable(0, "childparam", 1.0) p_t = devd_t.add_property(0, "sensorx_id", "0340") nodes = copy_node(self.opc.nodes.objects, dev_t) mydevice = nodes[0] self.assertEqual(mydevice.get_node_class(), ua.NodeClass.ObjectType) self.assertEqual(len(mydevice.get_children()), 4) obj = mydevice.get_child(["0:controller"]) prop = mydevice.get_child(["0:controller", "0:state"]) self.assertEqual(prop.get_type_definition().Identifier, ua.ObjectIds.PropertyType) self.assertEqual(prop.get_value(), "Running") self.assertNotEqual(prop.nodeid, prop_t.nodeid)