From 05a61581fea7eb9afb4581e9d3bb0cf0bfb7d5b3 Mon Sep 17 00:00:00 2001 From: Nico Date: Sun, 27 Sep 2015 22:07:09 +0200 Subject: [PATCH] add subscribe/unsubscribe tests --- tests/test_client.py | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/test_client.py b/tests/test_client.py index efec398..3876f86 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -7,6 +7,7 @@ import os import logging from hbmqtt.plugins.manager import PluginManager from hbmqtt.client import MQTTClient +from hbmqtt.mqtt.constants import * formatter = "[%(asctime)s] %(name)s {%(filename)s:%(lineno)d} %(levelname)s - %(message)s" logging.basicConfig(level=logging.DEBUG, format=formatter) @@ -125,3 +126,50 @@ class MQTTClientTest(unittest.TestCase): self.loop.run_until_complete(test_coro()) if future.exception(): raise future.exception() + + def test_subscribe(self): + @asyncio.coroutine + def test_coro(): + try: + client = MQTTClient() + yield from client.connect('mqtt://test.mosquitto.org/') + self.assertIsNotNone(client.session) + ret = yield from client.subscribe([ + ('$SYS/broker/uptime', QOS_0), + ('$SYS/broker/uptime', QOS_1), + ('$SYS/broker/uptime', QOS_2), + ]) + self.assertEquals(ret[0], QOS_0) + self.assertEquals(ret[1], QOS_1) + self.assertEquals(ret[2], QOS_2) + yield from client.disconnect() + future.set_result(True) + except Exception as ae: + future.set_exception(ae) + + future = asyncio.Future(loop=self.loop) + self.loop.run_until_complete(test_coro()) + if future.exception(): + raise future.exception() + + def test_unsubscribe(self): + @asyncio.coroutine + def test_coro(): + try: + client = MQTTClient() + yield from client.connect('mqtt://test.mosquitto.org/') + self.assertIsNotNone(client.session) + ret = yield from client.subscribe([ + ('$SYS/broker/uptime', QOS_0), + ]) + self.assertEquals(ret[0], QOS_0) + yield from client.unsubscribe(['$SYS/broker/uptime']) + yield from client.disconnect() + future.set_result(True) + except Exception as ae: + future.set_exception(ae) + + future = asyncio.Future(loop=self.loop) + self.loop.run_until_complete(test_coro()) + if future.exception(): + raise future.exception()