def test_method_tuple(self): o = self.opc.get_objects_node() m = o.get_child("2:ServerMethodTuple") result = o.call_method(m) self.assertEqual(result, [1, 2, 3]) result = call_method_full(o, m) self.assertEqual(result.OutputArguments, [1, 2, 3])
def test_method_array2(self): o = self.opc.get_objects_node() m = o.get_child("2:ServerMethodArray2") result = o.call_method(m, [1.1, 3.4, 9]) self.assertEqual(result, [2.2, 6.8, 18]) result = call_method_full(o, m, [1.1, 3.4, 9]) self.assertEqual(result.OutputArguments, [[2.2, 6.8, 18]])
def test_method_none(self): # this test calls the function linked to the type's method.. o = self.opc.get_node(ua.ObjectIds.BaseObjectType).get_child("2:ObjectWithMethodsType") m = o.get_child("2:ServerMethodDefault") result = o.call_method(m) self.assertEqual(result, None) result = call_method_full(o, m) self.assertEqual(result.OutputArguments, [])
def _call(self): parent = self.node.get_parent() args = [] for inp in self.inputs: val = string_to_variant(inp.text(), data_type_to_variant_type(inp.data_type)) args.append(val) result = call_method_full(parent, self.node, *args) self.result_label.setText(str(result.StatusCode)) for idx, res in enumerate(result.OutputArguments): self.outputs[idx].setText(val_to_string(res))