Skip to content

Commit

Permalink
Finalise test proplists in the packet gen funcs.
Browse files Browse the repository at this point in the history
This makes it easier to add part of a proplist in the test itself, and have the gen func add some more.
  • Loading branch information
ralight committed Jan 8, 2019
1 parent 1f9383d commit 9aec82b
Show file tree
Hide file tree
Showing 14 changed files with 6 additions and 30 deletions.
4 changes: 0 additions & 4 deletions test/broker/02-subpub-qos0-subscription-id.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,11 @@

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)

Expand All @@ -29,12 +27,10 @@
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)
Expand Down
1 change: 0 additions & 1 deletion test/broker/02-subpub-qos2-receive-maximum-1.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
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)

Expand Down
1 change: 0 additions & 1 deletion test/broker/02-subpub-qos2-receive-maximum-2.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
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)

Expand Down
1 change: 0 additions & 1 deletion test/broker/12-prop-assigned-client-identifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
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)
Expand Down
1 change: 0 additions & 1 deletion test/broker/12-prop-response-topic-correlation-data.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@

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)
Expand Down
1 change: 0 additions & 1 deletion test/broker/12-prop-response-topic.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,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.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)
Expand Down
2 changes: 0 additions & 2 deletions test/broker/12-prop-session-expiry-invalid.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,11 @@

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)
Expand Down
2 changes: 0 additions & 2 deletions test/broker/12-prop-subpub-content-type.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@

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)
2 changes: 0 additions & 2 deletions test/broker/12-prop-subpub-payload-format.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@

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)
3 changes: 0 additions & 3 deletions test/lib/03-request-response-correlation.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,14 @@

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)


Expand Down
1 change: 0 additions & 1 deletion test/lib/03-request-response.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@


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)
Expand Down
1 change: 0 additions & 1 deletion test/lib/11-prop-send-content-type.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
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)
Expand Down
1 change: 0 additions & 1 deletion test/lib/11-prop-send-payload-format.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
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)
Expand Down
15 changes: 6 additions & 9 deletions test/mosq_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -378,17 +377,15 @@ 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:
rl = rl + 2
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))
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit 9aec82b

Please sign in to comment.