paho-mqtt 2.1.0
PASS A1 paho CONNECT accepted by our broker (CONNACK rc 0)
PASS A2 SUBACK granted QoS (requested 2 and 1; our broker caps at 1) :: [[1, 1]]
PASS A3 QoS 0, 1, 2 publishes complete at paho (PUBACK / PUBREC-PUBREL-PUBCOMP handled by our broker) :: [True, True, True]
PASS A4 subscriber receives all three (QoS delivered 0, 1, 1 because our grant is capped at 1) :: [('greenhouse/zone1/soil', b'1832', 0, False), ('greenhouse/zone1/soil', b'1832', 1, False), ('greenhouse/zone1/soil', b'1832', 1, False)]
PASS A5 wildcards: '+' is one level only, '#' is multi-level :: [('alerts/a/b/c', b'hot', 1, False)]
PASS A6 retained message delivered to a late subscriber with the RETAIN flag set :: [('greenhouse/zone9/node1/status', b'online', 1, True)]
PASS A7 empty retained payload clears the retained message :: []
PASS A8 last will published when the client vanishes without DISCONNECT :: [('status/paho-will', b'offline', 1, False)]
PASS A9 no will after a clean DISCONNECT :: []
PASS A10 keep-alive: 1 s keep-alive survives 3 s idle thanks to PINGREQ/PINGRESP :: [('ka/x', b'still here', 0, False)]
PASS B1 our CONNECT accepted by amqtt
PASS B2 amqtt grants QoS 2 to our SUBSCRIBE :: [2]
PASS B3 QoS 0/1/2 publishes acknowledged by amqtt and all three delivered back to us (our inbound QoS-2 handshake completes) :: ([b'q0', b'q1', b'q2'], [2, 2, 2])
NOTE B3b amqtt deviation (confirmed with paho as an independent client): amqtt delivered at the subscription's QoS [2, 2, 2]; MQTT 3.1.1 section 3.8.4 requires min(published, granted) = [0, 1, 2]
PASS B4 non-matching topic not delivered
PASS B5 retained message from amqtt carries the RETAIN flag :: {'topic': 'greenhouse/zone5/node1/status', 'payload': b'online', 'qos': 1, 'retain': True, 'dup': False, 'pid': 1}
PASS B6 amqtt publishes our last will after we vanish :: [('greenhouse/zone5/node1/status', b'online', True), ('status/ours-will', b'offline', False)]
NOTE B6b amqtt deviation (confirmed with paho): a non-matching retained message ('greenhouse/zone5/node1/status', b'online', True) was delivered to a 'status/#' subscriber after another client had subscribed with a matching filter
PASS B7 UNSUBSCRIBE stops delivery
SUMMARY: 17/17 checks passed
