Ejemplo n.º 1
0
    def test_nodeid(self):
        nid = ua.NodeId()
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.TwoByte)
        nid = ua.NodeId(446, 3, ua.NodeIdType.FourByte)
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.FourByte)
        d = nodeid_to_binary(nid)
        new_nid = nodeid_from_binary(io.BytesIO(d))
        self.assertEqual(new_nid, nid)
        self.assertEqual(new_nid.NodeIdType, ua.NodeIdType.FourByte)
        self.assertEqual(new_nid.Identifier, 446)
        self.assertEqual(new_nid.NamespaceIndex, 3)

        tb = ua.TwoByteNodeId(53)
        fb = ua.FourByteNodeId(53)
        n = ua.NumericNodeId(53)
        n1 = ua.NumericNodeId(53, 0)
        s1 = ua.StringNodeId("53", 0)
        bs = ua.ByteStringNodeId(b"53", 0)
        gid = uuid.uuid4()
        g = ua.ByteStringNodeId(str(gid), 0)
        guid = ua.GuidNodeId(gid)
        self.assertEqual(tb, fb)
        self.assertEqual(tb, n)
        self.assertEqual(tb, n1)
        self.assertEqual(n1, fb)
        self.assertNotEqual(g, guid)
        self.assertEqual(tb, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(tb))))
        self.assertEqual(fb, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(fb))))
        self.assertEqual(n, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(n))))
        self.assertEqual(s1, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(s1))))
        self.assertEqual(bs, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(bs))))
        self.assertEqual(guid, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(guid))))
Ejemplo n.º 2
0
    def test_nodeid(self):
        nid = ua.NodeId()
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.TwoByte)
        nid = ua.NodeId(446, 3, ua.NodeIdType.FourByte)
        self.assertEqual(nid.NodeIdType, ua.NodeIdType.FourByte)
        d = nodeid_to_binary(nid)
        new_nid = nodeid_from_binary(io.BytesIO(d))
        self.assertEqual(new_nid, nid)
        self.assertEqual(new_nid.NodeIdType, ua.NodeIdType.FourByte)
        self.assertEqual(new_nid.Identifier, 446)
        self.assertEqual(new_nid.NamespaceIndex, 3)

        tb = ua.TwoByteNodeId(53)
        fb = ua.FourByteNodeId(53)
        n = ua.NumericNodeId(53)
        n1 = ua.NumericNodeId(53, 0)
        s1 = ua.StringNodeId("53", 0)
        bs = ua.ByteStringNodeId(b"53", 0)
        gid = uuid.uuid4()
        g = ua.ByteStringNodeId(str(gid), 0)
        guid = ua.GuidNodeId(gid)
        self.assertEqual(tb, fb)
        self.assertEqual(tb, n)
        self.assertEqual(tb, n1)
        self.assertEqual(n1, fb)
        self.assertNotEqual(g, guid)
        self.assertEqual(tb, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(tb))))
        self.assertEqual(fb, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(fb))))
        self.assertEqual(n, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(n))))
        self.assertEqual(s1, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(s1))))
        self.assertEqual(bs, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(bs))))
        self.assertEqual(guid, nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(guid))))
Ejemplo n.º 3
0
 def test_nodeid_nsu(self):
     n = ua.NodeId(100, 2)
     n.NamespaceUri = "http://freeopcua/tests"
     n.ServerIndex = 4
     data = nodeid_to_binary(n)
     n2 = nodeid_from_binary(ua.utils.Buffer(data))
     self.assertEqual(n, n2)
     n3 = ua.NodeId.from_string(n.to_string())
     self.assertEqual(n, n3)
Ejemplo n.º 4
0
 def check_answer(self, data, context):
     data = data.copy()
     typeid = nodeid_from_binary(data)
     if typeid == ua.FourByteNodeId(ua.ObjectIds.ServiceFault_Encoding_DefaultBinary):
         self.logger.warning("ServiceFault from server received %s", context)
         hdr = struct_from_binary(ua.ResponseHeader, data)
         hdr.ServiceResult.check()
         return False
     return True
Ejemplo n.º 5
0
 def check_answer(self, data, context):
     data = data.copy()
     typeid = nodeid_from_binary(data)
     if typeid == ua.FourByteNodeId(ua.ObjectIds.ServiceFault_Encoding_DefaultBinary):
         self.logger.warning("ServiceFault from server received %s", context)
         hdr = struct_from_binary(ua.ResponseHeader, data)
         hdr.ServiceResult.check()
         return False
     return True
Ejemplo n.º 6
0
 def test_nodeid_nsu(self):
     n = ua.NodeId(100, 2)
     n.NamespaceUri = "http://freeopcua/tests"
     n.ServerIndex = 4
     data = nodeid_to_binary(n)
     n2 = nodeid_from_binary(ua.utils.Buffer(data))
     self.assertEqual(n, n2)
     n3 = ua.NodeId.from_string(n.to_string())
     self.assertEqual(n, n3)
Ejemplo n.º 7
0
 def test_unicode_string_nodeid(self):
     nid = ua.NodeId('hëllò', 1)
     self.assertEqual(nid.NamespaceIndex, 1)
     self.assertEqual(nid.Identifier, 'hëllò')
     self.assertEqual(nid.NodeIdType, ua.NodeIdType.String)
     d = nodeid_to_binary(nid)
     new_nid = nodeid_from_binary(io.BytesIO(d))
     self.assertEqual(new_nid, nid)
     self.assertEqual(new_nid.Identifier, 'hëllò')
     self.assertEqual(new_nid.NodeIdType, ua.NodeIdType.String)
Ejemplo n.º 8
0
 def test_unicode_string_nodeid(self):
     nid = ua.NodeId('hëllò', 1)
     self.assertEqual(nid.NamespaceIndex, 1)
     self.assertEqual(nid.Identifier, 'hëllò')
     self.assertEqual(nid.NodeIdType, ua.NodeIdType.String)
     d = nodeid_to_binary(nid)
     new_nid = nodeid_from_binary(io.BytesIO(d))
     self.assertEqual(new_nid, nid)
     self.assertEqual(new_nid.Identifier, 'hëllò')
     self.assertEqual(new_nid.NodeIdType, ua.NodeIdType.String)
Ejemplo n.º 9
0
 def process_message(self, algohdr, seqhdr, body):
     typeid = nodeid_from_binary(body)
     requesthdr = struct_from_binary(ua.RequestHeader, body)
     try:
         return self._process_message(typeid, requesthdr, algohdr, seqhdr, body)
     except utils.ServiceError as e:
         status = ua.StatusCode(e.code)
         response = ua.ServiceFault()
         response.ResponseHeader.ServiceResult = status
         self.logger.info("sending service fault response: %s (%s)", status.doc, status.name)
         self.send_response(requesthdr.RequestHandle, algohdr, seqhdr, response)
         return True
Ejemplo n.º 10
0
 def process_message(self, algohdr, seqhdr, body):
     typeid = nodeid_from_binary(body)
     requesthdr = struct_from_binary(ua.RequestHeader, body)
     try:
         return self._process_message(typeid, requesthdr, algohdr, seqhdr, body)
     except utils.ServiceError as e:
         status = ua.StatusCode(e.code)
         response = ua.ServiceFault()
         response.ResponseHeader.ServiceResult = status
         self.logger.info("sending service fault response: %s (%s)", status.doc, status.name)
         self.send_response(requesthdr.RequestHandle, algohdr, seqhdr, response)
         return True
Ejemplo n.º 11
0
 def test_expandednodeid(self):
     nid = ua.ExpandedNodeId()
     self.assertEqual(nid.NodeIdType, ua.NodeIdType.TwoByte)
     nid2 = nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(nid)))
     self.assertEqual(nid, nid2)
Ejemplo n.º 12
0
 def test_expandednodeid(self):
     nid = ua.ExpandedNodeId()
     self.assertEqual(nid.NodeIdType, ua.NodeIdType.TwoByte)
     nid2 = nodeid_from_binary(ua.utils.Buffer(nodeid_to_binary(nid)))
     self.assertEqual(nid, nid2)