MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / test_xml_ns

Method test_xml_ns

tests/tests_xml.py:131–182  ·  view source on GitHub ↗

This test is far too complicated but catches a lot of things...

(self)

Source from the content-addressed store, hash-verified

129 self.assertEqual(a3.get_attribute(ua.AttributeIds.ArrayDimensions).Value.Value, [1, 0])
130
131 def test_xml_ns(self):
132 """
133 This test is far too complicated but catches a lot of things...
134 """
135 ns_array = self.opc.get_namespace_array()
136 if len(ns_array) < 3:
137 self.opc.register_namespace("dummy_ns")
138
139 ref_ns = self.opc.register_namespace("ref_namespace")
140 new_ns = self.opc.register_namespace("my_new_namespace")
141 bname_ns = self.opc.register_namespace("bname_namespace")
142
143 o = self.opc.nodes.objects.add_object(0, "xmlns0")
144 o50 = self.opc.nodes.objects.add_object(50, "xmlns20")
145 o200 = self.opc.nodes.objects.add_object(200, "xmlns200")
146 onew = self.opc.nodes.objects.add_object(new_ns, "xmlns_new")
147 vnew = onew.add_variable(new_ns, "xmlns_new_var", 9.99)
148 o_no_export = self.opc.nodes.objects.add_object(ref_ns, "xmlns_parent")
149 v_no_parent = o_no_export.add_variable(new_ns, "xmlns_new_var_no_parent", 9.99)
150 o_bname = onew.add_object("ns={0};i=4000".format(new_ns), "{0}:BNAME".format(bname_ns))
151
152 nodes = [o, o50, o200, onew, vnew, v_no_parent, o_bname]
153 self.opc.export_xml(nodes, "tmp_test_export-ns.xml")
154 # delete node and change index og new_ns before re-importing
155 self.opc.delete_nodes(nodes)
156 ns_node = self.opc.get_node(ua.NodeId(ua.ObjectIds.Server_NamespaceArray))
157 nss = ns_node.get_value()
158 nss.remove("my_new_namespace")
159 # nss.remove("ref_namespace")
160 nss.remove("bname_namespace")
161 ns_node.set_value(nss)
162 new_ns = self.opc.register_namespace("my_new_namespace_offsett")
163 new_ns = self.opc.register_namespace("my_new_namespace")
164
165 new_nodes = self.opc.import_xml("tmp_test_export-ns.xml")
166
167 for i in [o, o50, o200]:
168 i.get_browse_name()
169 with self.assertRaises(uaerrors.BadNodeIdUnknown):
170 onew.get_browse_name()
171
172 # since my_new_namesspace2 is referenced byt a node it should have been reimported
173 nss = self.opc.get_namespace_array()
174 self.assertIn("bname_namespace", nss)
175 # get index of namespaces after import
176 new_ns = self.opc.register_namespace("my_new_namespace")
177 bname_ns = self.opc.register_namespace("bname_namespace")
178
179 onew.nodeid.NamespaceIndex = new_ns
180 onew.get_browse_name()
181 vnew2 = onew.get_children()[0]
182 self.assertEqual(new_ns, vnew2.nodeid.NamespaceIndex)
183
184 def test_xml_float(self):
185 o = self.opc.nodes.objects.add_variable(2, "xmlfloat", 5.67)

Callers

nothing calls this directly

Calls 12

get_valueMethod · 0.80
set_valueMethod · 0.80
get_browse_nameMethod · 0.80
get_childrenMethod · 0.80
get_namespace_arrayMethod · 0.45
register_namespaceMethod · 0.45
add_objectMethod · 0.45
add_variableMethod · 0.45
export_xmlMethod · 0.45
delete_nodesMethod · 0.45
get_nodeMethod · 0.45
import_xmlMethod · 0.45

Tested by

no test coverage detected