Finalise test proplists in the packet gen funcs.

This makes it easier to add part of a proplist in the test itself, and have the gen func add some more.
pull/1203/head
Roger Light 7 years ago
parent 1f9383d59a
commit 9aec82b0e1

@ -12,13 +12,11 @@ connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)
mid = 1
props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 1)
props = mqtt5_props.prop_finalise(props)
subscribe1_packet = mosq_test.gen_subscribe(mid, "subpub/id1", 0, proto_ver=5, properties=props)
suback1_packet = mosq_test.gen_suback(mid, 0, proto_ver=5)
mid = 2
props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 14)
props = mqtt5_props.prop_finalise(props)
subscribe2_packet = mosq_test.gen_subscribe(mid, "subpub/+/id2", 0, proto_ver=5, properties=props)
suback2_packet = mosq_test.gen_suback(mid, 0, proto_ver=5)
@ -29,12 +27,10 @@ suback3_packet = mosq_test.gen_suback(mid, 0, proto_ver=5)
publish1_packet = mosq_test.gen_publish("subpub/id1", qos=0, payload="message1", proto_ver=5)
props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 1)
props = mqtt5_props.prop_finalise(props)
publish1r_packet = mosq_test.gen_publish("subpub/id1", qos=0, payload="message1", proto_ver=5, properties=props)
publish2_packet = mosq_test.gen_publish("subpub/test/id2", qos=0, payload="message2", proto_ver=5)
props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 14)
props = mqtt5_props.prop_finalise(props)
publish2r_packet = mosq_test.gen_publish("subpub/test/id2", qos=0, payload="message2", proto_ver=5, properties=props)
publish3_packet = mosq_test.gen_publish("subpub/noid", qos=0, payload="message3", proto_ver=5)

@ -8,7 +8,6 @@ from mosq_test_helper import *
rc = 1
keepalive = 60
props = mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_RECEIVE_MAXIMUM, 1)
props = mqtt5_props.prop_finalise(props)
connect_packet = mosq_test.gen_connect("subpub-qos2-test", keepalive=keepalive, proto_ver=5, properties=props)
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)

@ -8,7 +8,6 @@ from mosq_test_helper import *
rc = 1
keepalive = 60
props = mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_RECEIVE_MAXIMUM, 2)
props = mqtt5_props.prop_finalise(props)
connect_packet = mosq_test.gen_connect("subpub-qos2-test", keepalive=keepalive, proto_ver=5, properties=props)
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)

@ -16,7 +16,6 @@ props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_ASSIGNED_CLIENT_IDENTIFIER,
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5, properties=props)
props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 1)
props = mqtt5_props.prop_finalise(props)
disconnect_client_packet = mosq_test.gen_disconnect(proto_ver=5, properties=props)
disconnect_server_packet = mosq_test.gen_disconnect(proto_ver=5, reason_code=130)

@ -22,7 +22,6 @@ suback_packet = mosq_test.gen_suback(mid=1, qos=0, proto_ver=5)
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_RESPONSE_TOPIC, "response/topic")
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_CORRELATION_DATA, "45vyvynq30q3vt4 nuy893b4v3")
props = mqtt5_props.prop_finalise(props)
publish_packet2 = mosq_test.gen_publish(topic="normal/topic", qos=0, payload="2", proto_ver=5, properties=props)
publish_packet1 = mosq_test.gen_publish(topic="response/topic", qos=0, payload="22", proto_ver=5)

@ -21,7 +21,6 @@ subscribe_packet2 = mosq_test.gen_subscribe(mid=1, topic="response/topic", qos=0
suback_packet = mosq_test.gen_suback(mid=1, qos=0, proto_ver=5)
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_RESPONSE_TOPIC, "response/topic")
props = mqtt5_props.prop_finalise(props)
publish_packet2 = mosq_test.gen_publish(topic="normal/topic", qos=0, payload="2", proto_ver=5, properties=props)
publish_packet1 = mosq_test.gen_publish(topic="response/topic", qos=0, payload="22", proto_ver=5)

@ -9,13 +9,11 @@ rc = 1
keepalive = 10
props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 0)
props = mqtt5_props.prop_finalise(props)
connect_packet = mosq_test.gen_connect("test", proto_ver=5, keepalive=keepalive, properties=props)
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)
props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 1)
props = mqtt5_props.prop_finalise(props)
disconnect_client_packet = mosq_test.gen_disconnect(proto_ver=5, properties=props)
disconnect_server_packet = mosq_test.gen_disconnect(proto_ver=5, reason_code=130)

@ -9,9 +9,7 @@ from mosq_test_helper import *
props_out = mqtt5_props.gen_string_prop(mqtt5_props.PROP_CONTENT_TYPE, "text")
props_out = props_out+mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_TOPIC_ALIAS, 1)
props_out = mqtt5_props.prop_finalise(props_out)
props_in = mqtt5_props.gen_string_prop(mqtt5_props.PROP_CONTENT_TYPE, "text")
props_in = mqtt5_props.prop_finalise(props_in)
helper.prop_subpub_helper(props_out, props_in)

@ -9,9 +9,7 @@ from mosq_test_helper import *
props_out = mqtt5_props.gen_byte_prop(mqtt5_props.PROP_PAYLOAD_FORMAT_INDICATOR, 0xed)
props_out = props_out+mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_TOPIC_ALIAS, 1)
props_out = mqtt5_props.prop_finalise(props_out)
props_in = mqtt5_props.gen_byte_prop(mqtt5_props.PROP_PAYLOAD_FORMAT_INDICATOR, 0xed)
props_in = mqtt5_props.prop_finalise(props_in)
helper.prop_subpub_helper(props_out, props_in)

@ -22,17 +22,14 @@ suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=5)
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_RESPONSE_TOPIC, resp_topic)
props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_CORRELATION_DATA, "corridor")
props = mqtt5_props.prop_finalise(props)
publish1_packet_incoming = mosq_test.gen_publish(pub_topic, qos=0, payload="action", proto_ver=5, properties=props)
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_RESPONSE_TOPIC, resp_topic)
props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_CORRELATION_DATA, "corridor")
props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "user", "data")
props = mqtt5_props.prop_finalise(props)
publish1_packet_outgoing = mosq_test.gen_publish(pub_topic, qos=0, payload="action", proto_ver=5, properties=props)
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_CORRELATION_DATA, "corridor")
props = mqtt5_props.prop_finalise(props)
publish2_packet = mosq_test.gen_publish(resp_topic, qos=0, payload="a response", proto_ver=5, properties=props)

@ -21,7 +21,6 @@ suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=5)
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_RESPONSE_TOPIC, resp_topic)
props = mqtt5_props.prop_finalise(props)
publish1_packet = mosq_test.gen_publish(pub_topic, qos=0, payload="action", proto_ver=5, properties=props)
publish2_packet = mosq_test.gen_publish(resp_topic, qos=0, payload="a response", proto_ver=5)

@ -10,7 +10,6 @@ connect_packet = mosq_test.gen_connect("prop-test", keepalive=keepalive, proto_v
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)
props = mqtt5_props.gen_string_prop(mqtt5_props.PROP_CONTENT_TYPE, "application/json")
props = mqtt5_props.prop_finalise(props)
publish_packet = mosq_test.gen_publish("prop/qos0", qos=0, payload="message", proto_ver=5, properties=props)
disconnect_packet = mosq_test.gen_disconnect(proto_ver=5)

@ -20,7 +20,6 @@ connect_packet = mosq_test.gen_connect("prop-test", keepalive=keepalive, proto_v
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)
props = mqtt5_props.gen_byte_prop(mqtt5_props.PROP_PAYLOAD_FORMAT_INDICATOR, 0x01)
props = mqtt5_props.prop_finalise(props)
publish_packet = mosq_test.gen_publish("prop/qos0", qos=0, payload="message", proto_ver=5, properties=props)
disconnect_packet = mosq_test.gen_disconnect(proto_ver=5)

@ -320,10 +320,9 @@ def gen_connect(client_id, clean_session=True, keepalive=60, username=None, pass
connect_flags = connect_flags | 0x02
if proto_ver == 5:
properties += mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_RECEIVE_MAXIMUM, 20)
properties = mqtt5_props.prop_finalise(properties)
if properties == "":
properties = struct.pack("B", 0)
properties += mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_RECEIVE_MAXIMUM, 20)
properties = mqtt5_props.prop_finalise(properties)
remaining_length += len(properties)
if will_topic != None:
@ -378,7 +377,7 @@ def gen_connack(resv=0, rc=0, proto_ver=4, properties=""):
return packet
def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0, proto_ver=4, properties=None):
def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0, proto_ver=4, properties=""):
rl = 2+len(topic)
pack_format = "H"+str(len(topic))+"s"
if qos > 0:
@ -386,9 +385,7 @@ def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0, proto_
pack_format = pack_format + "H"
if proto_ver == 5:
if properties is None:
properties = struct.pack("!B", 0)
properties = mqtt5_props.prop_finalise(properties)
rl += len(properties)
# This will break if len(properties) > 127
pack_format = pack_format + "%ds"%(len(properties))
@ -446,6 +443,7 @@ def gen_subscribe(mid, topic, qos, proto_ver=4, properties=""):
pack_format = "!BBHBH"+str(len(topic))+"sB"
return struct.pack(pack_format, 130, 2+1+2+len(topic)+1, mid, 0, len(topic), topic, qos)
else:
properties = mqtt5_props.prop_finalise(properties)
pack_format = "!BBH"+str(len(properties))+"s"+"H"+str(len(topic))+"sB"
return struct.pack(pack_format, 130, 2+1+2+len(topic)+len(properties), mid, properties, len(topic), topic, qos)
else:
@ -480,8 +478,7 @@ def gen_pingresp():
def gen_disconnect(reason_code=0, proto_ver=4, properties=""):
if proto_ver == 5:
if properties == "":
properties = struct.pack("B", 0)
properties = mqtt5_props.prop_finalise(properties)
return struct.pack('!BBB', 224, 1+len(properties), reason_code) + properties
else:

Loading…
Cancel
Save