Commit 42889db6 authored by Yuta Okamoto's avatar Yuta Okamoto Committed by oroulet

add default_idx parameter to QualifiedName

parent 31e3e78f
......@@ -683,7 +683,7 @@ class QualifiedName:
return f"{self.NamespaceIndex}:{self.Name}"
@staticmethod
def from_string(string):
def from_string(string, default_idx=0):
if ":" in string:
try:
idx, name = string.split(":", 1)
......@@ -691,7 +691,7 @@ class QualifiedName:
except (TypeError, ValueError) as ex:
raise UaStringParsingError(f"Error parsing string {string}", ex) from ex
else:
idx = 0
idx = default_idx
name = string
return QualifiedName(Name=name, NamespaceIndex=idx)
......
......@@ -456,6 +456,17 @@ def test_nodeid_string():
# nid1 = ua.StringNodeId(1, 2)
def test_qualifiedname_string():
qname1 = ua.QualifiedName.from_string("Name")
assert (0, "Name") == (qname1.NamespaceIndex, qname1.Name)
qname2 = ua.QualifiedName.from_string("1:Name")
assert (1, "Name") == (qname2.NamespaceIndex, qname2.Name)
qname3 = ua.QualifiedName.from_string("Name", default_idx=2)
assert (2, "Name") == (qname3.NamespaceIndex, qname3.Name)
qname4 = ua.QualifiedName.from_string("3:Name", default_idx=2)
assert (3, "Name") == (qname4.NamespaceIndex, qname4.Name)
def test_bad_string():
with pytest.raises(ua.UaStringParsingError):
ua.NodeId.from_string("ns=r;s=yu")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment