Skip to content

Commit

Permalink
Simplify test_01_asyncio
Browse files Browse the repository at this point in the history
  • Loading branch information
akx committed Dec 24, 2023
1 parent 63596cd commit d54cea3
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 36 deletions.
62 changes: 27 additions & 35 deletions tests/lib/clients/01-asyncio.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,53 +43,45 @@ async def misc_loop(self):
break


class AsyncMqttExample:
def __init__(self, loop):
self.loop = loop
self.payload = ""
self.complete = False
async def main():
loop = asyncio.get_event_loop()
payload = ""

def on_connect(self, client, obj, flags, rc):
def on_connect(client, obj, flags, rc):
client.subscribe("sub-test", 1)

def on_subscribe(self, client, obj, mid, granted_qos):
def on_subscribe(client, obj, mid, granted_qos):
client.unsubscribe("unsub-test")

def on_unsubscribe(self, client, obj, mid):
self.payload = "message"
def on_unsubscribe(client, obj, mid):
nonlocal payload
payload = "message"

def on_message(self, client, obj, msg):
client.publish("asyncio", qos=1, payload=self.payload)
def on_message(client, obj, msg):
client.publish("asyncio", qos=1, payload=payload)

def on_publish(self, client, obj, mid):
def on_publish(client, obj, mid):
client.disconnect()

def on_disconnect(self, client, userdata, rc):
self.disconnected.set_result(rc)

async def main(self):
global rc
self.disconnected = self.loop.create_future()
def on_disconnect(client, userdata, rc):
disconnected.set_result(rc)

self.client = mqtt.Client(client_id=client_id)
self.client.on_connect = self.on_connect
self.client.on_message = self.on_message
self.client.on_publish = self.on_publish
self.client.on_subscribe = self.on_subscribe
self.client.on_unsubscribe = self.on_unsubscribe
self.client.on_disconnect = self.on_disconnect
disconnected = loop.create_future()

aioh = AsyncioHelper(self.loop, self.client)
client = mqtt.Client(client_id=client_id)
client.on_connect = on_connect
client.on_message = on_message
client.on_publish = on_publish
client.on_subscribe = on_subscribe
client.on_unsubscribe = on_unsubscribe
client.on_disconnect = on_disconnect

self.client.connect('localhost', 1888, 60)
self.client.socket().setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 2048)
aioh = AsyncioHelper(loop, client)

await self.disconnected
rc = 0
client.connect('localhost', 1888, 60)
client.socket().setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 2048)

await disconnected

rc = 1
loop = asyncio.get_event_loop()
loop.run_until_complete(AsyncMqttExample(loop).main())
loop.close()
exit(rc)
if __name__ == '__main__':
asyncio.run(main())
3 changes: 2 additions & 1 deletion tests/lib/test_01_asyncio.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@


def test_01_asyncio(server_socket, start_client):
start_client("01-asyncio.py")
proc = start_client("01-asyncio.py")

(conn, address) = server_socket.accept()
conn.settimeout(10)
Expand All @@ -42,3 +42,4 @@ def test_01_asyncio(server_socket, start_client):
paho_test.expect_packet(conn, "disconnect", disconnect_packet)

conn.close()
assert proc.wait() == 0

0 comments on commit d54cea3

Please sign in to comment.