Exemple #1
0
 def test_getattr_ok(self):
     data = b"\x10\x3e\x00\x04MQTT\x04\xce\x00\x00\x00\x0a0123456789\x00\x09WillTopic\x00\x0bWillMessage\x00\x04user\x00\x08password"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(ConnectPacket.from_stream(stream))
     self.assertEqual(message.variable_header.proto_name, "MQTT")
     self.assertEqual(message.proto_name, "MQTT")
     self.assertEqual(message.variable_header.proto_level, 4)
     self.assertEqual(message.proto_level, 4)
     assert message.variable_header.username_flag
     assert message.username_flag
     assert message.variable_header.password_flag
     assert message.password_flag
     self.assertFalse(message.variable_header.will_retain_flag)
     self.assertFalse(message.will_retain_flag)
     self.assertEqual(message.variable_header.will_qos, 1)
     self.assertEqual(message.will_qos, 1)
     assert message.variable_header.will_flag
     assert message.will_flag
     assert message.variable_header.clean_session_flag
     assert message.clean_session_flag
     self.assertFalse(message.variable_header.reserved_flag)
     self.assertFalse(message.reserved_flag)
     self.assertEqual(message.payload.client_id, "0123456789")
     self.assertEqual(message.client_id, "0123456789")
     self.assertEqual(message.payload.will_topic, "WillTopic")
     self.assertEqual(message.will_topic, "WillTopic")
     self.assertEqual(message.payload.will_message, b"WillMessage")
     self.assertEqual(message.will_message, b"WillMessage")
     self.assertEqual(message.payload.username, "user")
     self.assertEqual(message.username, "user")
     self.assertEqual(message.payload.password, "password")
     self.assertEqual(message.password, "password")
Exemple #2
0
 def test_from_stream_qos_2(self):
     data = b"\x37\x13\x00\x05topic\x00\x0a0123456789"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(PublishPacket.from_stream(stream))
     self.assertEqual(message.variable_header.topic_name, "topic")
     self.assertEqual(message.variable_header.packet_id, 10)
     assert (message.fixed_header.flags >> 1) & 0x03
     assert message.fixed_header.flags & 0x01
     assert message.payload.data, b"0123456789"
Exemple #3
0
 def test_from_bytes_with_length(self):
     data = b"\x10\xff\xff\xff\x7f"
     stream = BufferReader(data)
     header = self.loop.run_until_complete(
         MQTTFixedHeader.from_stream(stream))
     self.assertEqual(header.packet_type, CONNECT)
     self.assertFalse(header.flags & 0x08)
     self.assertEqual((header.flags & 0x06) >> 1, 0)
     self.assertFalse(header.flags & 0x01)
     self.assertEqual(header.remaining_length, 268435455)
Exemple #4
0
 def test_from_stream(self):
     data = b"\x80\x0e\x00\x0a\x00\x03a/b\x01\x00\x03c/d\x02"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(SubscribePacket.from_stream(stream))
     (topic, qos) = message.payload.topics[0]
     self.assertEqual(topic, "a/b")
     self.assertEqual(qos, QOS_1)
     (topic, qos) = message.payload.topics[1]
     self.assertEqual(topic, "c/d")
     self.assertEqual(qos, QOS_2)
Exemple #5
0
 def test_from_stream(self):
     data = b"\x90\x06\x00\x0a\x00\x01\x02\x80"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(
         SubackPacket.from_stream(stream))
     self.assertEqual(message.payload.return_codes[0],
                      SubackPayload.RETURN_CODE_00)
     self.assertEqual(message.payload.return_codes[1],
                      SubackPayload.RETURN_CODE_01)
     self.assertEqual(message.payload.return_codes[2],
                      SubackPayload.RETURN_CODE_02)
     self.assertEqual(message.payload.return_codes[3],
                      SubackPayload.RETURN_CODE_80)
Exemple #6
0
 def test_from_stream(self):
     data = b"\x50\x02\x00\x0a"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(
         PubrecPacket.from_stream(stream))
     self.assertEqual(message.variable_header.packet_id, 10)
Exemple #7
0
 def test_from_bytes_ko_with_length(self):
     data = b"\x10\xff\xff\xff\xff\x7f"
     stream = BufferReader(data)
     with self.assertRaises(MQTTException):
         self.loop.run_until_complete(MQTTFixedHeader.from_stream(stream))
Exemple #8
0
 def test_decode_fail_miss_password(self):
     data = b"\x10\x34\x00\x04MQTT\x04\xce\x00\x00\x00\x0a0123456789\x00\x09WillTopic\x00\x0bWillMessage\x00\x04user"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(ConnectPacket.from_stream(stream))
     self.assertIs(message.payload.password, None)
Exemple #9
0
 def test_decode_fail_miss_willtopic(self):
     data = b"\x10\x16\x00\x04MQTT\x04\xce\x00\x00\x00\x0a0123456789"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(ConnectPacket.from_stream(stream))
     self.assertIs(message.payload.will_topic, None)
Exemple #10
0
 def test_decode_fail_miss_clientId(self):
     data = b"\x10\x0a\x00\x04MQTT\x04\xce\x00\x00"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(ConnectPacket.from_stream(stream))
     self.assertIsNot(message.payload.client_id, None)
Exemple #11
0
 def test_decode_fail_reserved_flag(self):
     data = b"\x10\x3e\x00\x04MQTT\x04\xcf\x00\x00\x00\x0a0123456789\x00\x09WillTopic\x00\x0bWillMessage\x00\x04user\x00\x08password"
     stream = BufferReader(data)
     message = self.loop.run_until_complete(ConnectPacket.from_stream(stream))
     assert message.variable_header.reserved_flag