Exemple #1
0
    def on_message(self, client, userdata, msg):
        """This function will recevie all message from mqtt
        client
            the client instance for this callback
        userdata
            the private user data as set in Client() or userdata_set()
        message
            an instance of MQTTMessage. This is a class with members topic,
            payload, qos, retain.
        """
        try:
            message = Message(msg.payload)
        except (TypeError, ValueError) as e:
            logger.debug(e)
            return

        if message.type() == MessageType.UNKNOWN:
            logger.debug("Got an UNKNOWN message, don't dispatch")
            return

        if message.type() == MessageType.RESPONSE:
            self.res_queue.put(message)

        if message.type() == MessageType.REQUEST or \
           message.type() == MessageType.DIRECT or \
           message.type() == MessageType.HOOK or \
           message.type() == MessageType.EVENT:
            self.req_queue.put(message)
Exemple #2
0
    def test_init(self):
        msg = Message({
            "method": "get",
            "resource": "/model/123"
        },
                      generate_id=True)

        self.assertGreater(msg.id, 0)
        self.assertLess(msg.id, 655350)
        self.assertEqual(msg.type(), MessageType.REQUEST)

        msg_noid = Message({"method": "get", "resource": "/model/123"})
        self.assertEqual(msg_noid.type(), MessageType.UNKNOWN)

        with self.assertRaises(ValueError):
            Message("{")

        with self.assertRaises(TypeError):
            Message(123)
Exemple #3
0
    def test_request_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.REQUEST)
Exemple #4
0
    def test_request_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.REQUEST)
Exemple #5
0
    def test_event_msg(self):
        msg = {
            "code": 200,
            "resource": "/network/cellular/1",
            "method": "get",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.EVENT)
Exemple #6
0
    def test_event_msg(self):
        msg = {
            "code": 200,
            "resource": "/network/cellular/1",
            "method": "get",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.EVENT)
Exemple #7
0
    def test_hook_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["abc", "def"],
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.HOOK)
Exemple #8
0
    def test_direct_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "tunnel": "asdf",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.DIRECT)
Exemple #9
0
    def test_hook_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["abc", "def"],
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.HOOK)
Exemple #10
0
    def test_direct_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "tunnel": "asdf",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.DIRECT)
Exemple #11
0
    def test_response_msg(self):
        msg = {
            "id": 123124,
            "code": 200,
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["test"],
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.RESPONSE)
Exemple #12
0
    def test_response_msg(self):
        msg = {
            "id": 123124,
            "code": 200,
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["test"],
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.RESPONSE)
Exemple #13
0
    def test_init(self):
        msg = Message({
            "method": "get",
            "resource": "/model/123"
        }, generate_id=True)

        self.assertGreater(msg.id, 0)
        self.assertLess(msg.id, 65535)
        self.assertEqual(msg.type(), MessageType.REQUEST)

        msg_noid = Message({
            "method": "get",
            "resource": "/model/123"
        })
        self.assertEqual(msg_noid.type(), MessageType.UNKNOWN)

        with self.assertRaises(ValueError):
            Message("{")

        with self.assertRaises(TypeError):
            Message(123)
Exemple #14
0
    def test_unknow_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["abc", "def"],
            "tunnel": "123",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)

        msg = {
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["abc", "def"],
            "tunnel": "123",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)

        msg = {
            "method": "get",
            "sign": ["abc", "def"],
            "tunnel": "123",
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)

        msg = {
            "method": "get",
            "sign": ["abc", "def"],
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)
Exemple #15
0
    def test_unknow_msg(self):
        msg = {
            "id": 123124,
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["abc", "def"],
            "tunnel": "123",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)

        msg = {
            "resource": "/network/cellular/1",
            "method": "get",
            "sign": ["abc", "def"],
            "tunnel": "123",
            "data": {}
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)

        msg = {
            "method": "get",
            "sign": ["abc", "def"],
            "tunnel": "123",
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)

        msg = {
            "method": "get",
            "sign": ["abc", "def"],
        }

        sanjimsg = Message(msg)
        self.assertEqual(sanjimsg.type(), MessageType.UNKNOWN)