kopia lustrzana https://github.com/Yakifo/amqtt
move broker into pytest fixture
rodzic
b430cc8487
commit
7276075ed8
|
@ -0,0 +1,43 @@
|
||||||
|
import unittest.mock
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
import hbmqtt.broker
|
||||||
|
|
||||||
|
test_config = {
|
||||||
|
'listeners': {
|
||||||
|
'default': {
|
||||||
|
'type': 'tcp',
|
||||||
|
'bind': '127.0.0.1:1883',
|
||||||
|
'max_connections': 10
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'sys_interval': 0,
|
||||||
|
'auth': {
|
||||||
|
'allow-anonymous': True,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="function")
|
||||||
|
def mock_plugin_manager():
|
||||||
|
with unittest.mock.patch('hbmqtt.broker.PluginManager') as plugin_manager:
|
||||||
|
yield plugin_manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="function")
|
||||||
|
async def broker(mock_plugin_manager):
|
||||||
|
# just making sure the mock is in place before we start our broker
|
||||||
|
assert mock_plugin_manager is not None
|
||||||
|
|
||||||
|
broker = hbmqtt.broker.Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
||||||
|
await broker.start()
|
||||||
|
assert broker.transitions.is_started()
|
||||||
|
assert broker._sessions == {}
|
||||||
|
assert 'default' in broker._servers
|
||||||
|
|
||||||
|
yield broker
|
||||||
|
|
||||||
|
if not broker.transitions.is_stopped():
|
||||||
|
await broker.shutdown()
|
|
@ -33,19 +33,7 @@ formatter = "[%(asctime)s] %(name)s {%(filename)s:%(lineno)d} %(levelname)s - %(
|
||||||
logging.basicConfig(level=logging.DEBUG, format=formatter)
|
logging.basicConfig(level=logging.DEBUG, format=formatter)
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
test_config = {
|
|
||||||
'listeners': {
|
|
||||||
'default': {
|
|
||||||
'type': 'tcp',
|
|
||||||
'bind': '127.0.0.1:1883',
|
|
||||||
'max_connections': 10
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'sys_interval': 0,
|
|
||||||
'auth': {
|
|
||||||
'allow-anonymous': True,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# monkey patch MagicMock
|
# monkey patch MagicMock
|
||||||
# taken from https://stackoverflow.com/questions/51394411/python-object-magicmock-cant-be-used-in-await-expression
|
# taken from https://stackoverflow.com/questions/51394411/python-object-magicmock-cant-be-used-in-await-expression
|
||||||
|
@ -57,53 +45,36 @@ MagicMock.__await__ = lambda x: async_magic().__await__()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_start_stop(broker, mock_plugin_manager):
|
||||||
async def test_start_stop(MockPluginManager):
|
mock_plugin_manager.assert_has_calls(
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
assert broker._sessions == {}
|
|
||||||
assert 'default' in broker._servers
|
|
||||||
MockPluginManager.assert_has_calls(
|
|
||||||
[call().fire_event(EVENT_BROKER_PRE_START),
|
[call().fire_event(EVENT_BROKER_PRE_START),
|
||||||
call().fire_event(EVENT_BROKER_POST_START)], any_order=True)
|
call().fire_event(EVENT_BROKER_POST_START)], any_order=True)
|
||||||
MockPluginManager.reset_mock()
|
mock_plugin_manager.reset_mock()
|
||||||
await broker.shutdown()
|
await broker.shutdown()
|
||||||
MockPluginManager.assert_has_calls(
|
mock_plugin_manager.assert_has_calls(
|
||||||
[call().fire_event(EVENT_BROKER_PRE_SHUTDOWN),
|
[call().fire_event(EVENT_BROKER_PRE_SHUTDOWN),
|
||||||
call().fire_event(EVENT_BROKER_POST_SHUTDOWN)], any_order=True)
|
call().fire_event(EVENT_BROKER_POST_SHUTDOWN)], any_order=True)
|
||||||
assert broker.transitions.is_stopped()
|
assert broker.transitions.is_stopped()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_connect(broker, mock_plugin_manager):
|
||||||
async def test_client_connect(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
client = MQTTClient()
|
client = MQTTClient()
|
||||||
ret = await client.connect('mqtt://127.0.0.1/')
|
ret = await client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
assert client.session.client_id in broker._sessions
|
assert client.session.client_id in broker._sessions
|
||||||
await client.disconnect()
|
await client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
|
||||||
await broker.shutdown()
|
await asyncio.sleep(0.01)
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
assert broker._sessions == {}
|
mock_plugin_manager.assert_has_calls(
|
||||||
MockPluginManager.assert_has_calls(
|
|
||||||
[call().fire_event(EVENT_BROKER_CLIENT_CONNECTED, client_id=client.session.client_id),
|
[call().fire_event(EVENT_BROKER_CLIENT_CONNECTED, client_id=client.session.client_id),
|
||||||
call().fire_event(EVENT_BROKER_CLIENT_DISCONNECTED, client_id=client.session.client_id)],
|
call().fire_event(EVENT_BROKER_CLIENT_DISCONNECTED, client_id=client.session.client_id)],
|
||||||
any_order=True)
|
any_order=True)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_connect_will_flag(broker, event_loop):
|
||||||
async def test_client_connect_will_flag(MockPluginManager, event_loop):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
|
|
||||||
conn_reader, conn_writer = \
|
conn_reader, conn_writer = \
|
||||||
await asyncio.open_connection('127.0.0.1', 1883, loop=event_loop)
|
await asyncio.open_connection('127.0.0.1', 1883, loop=event_loop)
|
||||||
reader = StreamReaderAdapter(conn_reader)
|
reader = StreamReaderAdapter(conn_reader)
|
||||||
|
@ -130,17 +101,10 @@ async def test_client_connect_will_flag(MockPluginManager, event_loop):
|
||||||
await disconnect.to_stream(writer)
|
await disconnect.to_stream(writer)
|
||||||
|
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
assert broker._sessions == {}
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_connect_clean_session_false(broker):
|
||||||
async def test_client_connect_clean_session_false(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
client = MQTTClient(client_id="", config={'auto_reconnect': False})
|
client = MQTTClient(client_id="", config={'auto_reconnect': False})
|
||||||
return_code = None
|
return_code = None
|
||||||
try:
|
try:
|
||||||
|
@ -151,14 +115,10 @@ async def test_client_connect_clean_session_false(MockPluginManager):
|
||||||
assert client.session.client_id not in broker._sessions
|
assert client.session.client_id not in broker._sessions
|
||||||
await client.disconnect()
|
await client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_subscribe(broker, mock_plugin_manager):
|
||||||
async def test_client_subscribe(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
client = MQTTClient()
|
client = MQTTClient()
|
||||||
ret = await client.connect('mqtt://127.0.0.1/')
|
ret = await client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
@ -174,19 +134,14 @@ async def test_client_subscribe(MockPluginManager):
|
||||||
|
|
||||||
await client.disconnect()
|
await client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
mock_plugin_manager.assert_has_calls(
|
||||||
MockPluginManager.assert_has_calls(
|
|
||||||
[call().fire_event(EVENT_BROKER_CLIENT_SUBSCRIBED,
|
[call().fire_event(EVENT_BROKER_CLIENT_SUBSCRIBED,
|
||||||
client_id=client.session.client_id,
|
client_id=client.session.client_id,
|
||||||
topic='/topic', qos=QOS_0)], any_order=True)
|
topic='/topic', qos=QOS_0)], any_order=True)
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_subscribe_twice(broker, mock_plugin_manager):
|
||||||
async def test_client_subscribe_twice(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
client = MQTTClient()
|
client = MQTTClient()
|
||||||
ret = await client.connect('mqtt://127.0.0.1/')
|
ret = await client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
@ -208,20 +163,15 @@ async def test_client_subscribe_twice(MockPluginManager):
|
||||||
|
|
||||||
await client.disconnect()
|
await client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
mock_plugin_manager.assert_has_calls(
|
||||||
MockPluginManager.assert_has_calls(
|
|
||||||
[call().fire_event(EVENT_BROKER_CLIENT_SUBSCRIBED,
|
[call().fire_event(EVENT_BROKER_CLIENT_SUBSCRIBED,
|
||||||
client_id=client.session.client_id,
|
client_id=client.session.client_id,
|
||||||
topic='/topic', qos=QOS_0)], any_order=True)
|
topic='/topic', qos=QOS_0)], any_order=True)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_unsubscribe(broker, mock_plugin_manager):
|
||||||
async def test_client_unsubscribe(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
client = MQTTClient()
|
client = MQTTClient()
|
||||||
ret = await client.connect('mqtt://127.0.0.1/')
|
ret = await client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
@ -240,9 +190,8 @@ async def test_client_unsubscribe(MockPluginManager):
|
||||||
assert broker._subscriptions['/topic'] == []
|
assert broker._subscriptions['/topic'] == []
|
||||||
await client.disconnect()
|
await client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
mock_plugin_manager.assert_has_calls(
|
||||||
MockPluginManager.assert_has_calls(
|
|
||||||
[
|
[
|
||||||
call().fire_event(EVENT_BROKER_CLIENT_SUBSCRIBED,
|
call().fire_event(EVENT_BROKER_CLIENT_SUBSCRIBED,
|
||||||
client_id=client.session.client_id,
|
client_id=client.session.client_id,
|
||||||
|
@ -254,11 +203,7 @@ async def test_client_unsubscribe(MockPluginManager):
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_publish(broker, mock_plugin_manager):
|
||||||
async def test_client_publish(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
pub_client = MQTTClient()
|
pub_client = MQTTClient()
|
||||||
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
@ -268,9 +213,8 @@ async def test_client_publish(MockPluginManager):
|
||||||
assert broker._retained_messages == {}
|
assert broker._retained_messages == {}
|
||||||
|
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
mock_plugin_manager.assert_has_calls(
|
||||||
MockPluginManager.assert_has_calls(
|
|
||||||
[
|
[
|
||||||
call().fire_event(EVENT_BROKER_MESSAGE_RECEIVED,
|
call().fire_event(EVENT_BROKER_MESSAGE_RECEIVED,
|
||||||
client_id=pub_client.session.client_id,
|
client_id=pub_client.session.client_id,
|
||||||
|
@ -278,11 +222,7 @@ async def test_client_publish(MockPluginManager):
|
||||||
], any_order=True)
|
], any_order=True)
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_client_publish_dup(event_loop):
|
async def test_client_publish_dup(broker, event_loop):
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
|
|
||||||
conn_reader, conn_writer = \
|
conn_reader, conn_writer = \
|
||||||
await asyncio.open_connection('127.0.0.1', 1883, loop=event_loop)
|
await asyncio.open_connection('127.0.0.1', 1883, loop=event_loop)
|
||||||
reader = StreamReaderAdapter(conn_reader)
|
reader = StreamReaderAdapter(conn_reader)
|
||||||
|
@ -315,15 +255,9 @@ async def test_client_publish_dup(event_loop):
|
||||||
disconnect = DisconnectPacket()
|
disconnect = DisconnectPacket()
|
||||||
await disconnect.to_stream(writer)
|
await disconnect.to_stream(writer)
|
||||||
|
|
||||||
await asyncio.sleep(0.1)
|
|
||||||
await broker.shutdown()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_publish_invalid_topic(broker):
|
||||||
async def test_client_publish_invalid_topic(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
assert broker.transitions.is_started()
|
||||||
pub_client = MQTTClient()
|
pub_client = MQTTClient()
|
||||||
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
||||||
|
@ -333,16 +267,9 @@ async def test_client_publish_invalid_topic(MockPluginManager):
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await pub_client.disconnect()
|
await pub_client.disconnect()
|
||||||
|
|
||||||
await asyncio.sleep(0.1)
|
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_publish_big(broker, mock_plugin_manager):
|
||||||
async def test_client_publish_big(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
pub_client = MQTTClient()
|
pub_client = MQTTClient()
|
||||||
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
@ -352,9 +279,8 @@ async def test_client_publish_big(MockPluginManager):
|
||||||
assert broker._retained_messages == {}
|
assert broker._retained_messages == {}
|
||||||
|
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
mock_plugin_manager.assert_has_calls(
|
||||||
MockPluginManager.assert_has_calls(
|
|
||||||
[
|
[
|
||||||
call().fire_event(EVENT_BROKER_MESSAGE_RECEIVED,
|
call().fire_event(EVENT_BROKER_MESSAGE_RECEIVED,
|
||||||
client_id=pub_client.session.client_id,
|
client_id=pub_client.session.client_id,
|
||||||
|
@ -362,12 +288,7 @@ async def test_client_publish_big(MockPluginManager):
|
||||||
], any_order=True)
|
], any_order=True)
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_publish_retain(broker):
|
||||||
async def test_client_publish_retain(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
|
|
||||||
pub_client = MQTTClient()
|
pub_client = MQTTClient()
|
||||||
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
@ -380,16 +301,10 @@ async def test_client_publish_retain(MockPluginManager):
|
||||||
assert retained_message.topic == '/topic'
|
assert retained_message.topic == '/topic'
|
||||||
assert retained_message.data == b'data'
|
assert retained_message.data == b'data'
|
||||||
assert retained_message.qos == QOS_0
|
assert retained_message.qos == QOS_0
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_publish_retain_delete(broker):
|
||||||
async def test_client_publish_retain_delete(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
|
|
||||||
pub_client = MQTTClient()
|
pub_client = MQTTClient()
|
||||||
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
ret = await pub_client.connect('mqtt://127.0.0.1/')
|
||||||
assert ret == 0
|
assert ret == 0
|
||||||
|
@ -397,15 +312,10 @@ async def test_client_publish_retain_delete(MockPluginManager):
|
||||||
await pub_client.disconnect()
|
await pub_client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
assert '/topic' not in broker._retained_messages
|
assert '/topic' not in broker._retained_messages
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_subscribe_publish(broker):
|
||||||
async def test_client_subscribe_publish(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
sub_client = MQTTClient()
|
sub_client = MQTTClient()
|
||||||
await sub_client.connect('mqtt://127.0.0.1')
|
await sub_client.connect('mqtt://127.0.0.1')
|
||||||
ret = await sub_client.subscribe([('/qos0', QOS_0), ('/qos1', QOS_1), ('/qos2', QOS_2)])
|
ret = await sub_client.subscribe([('/qos0', QOS_0), ('/qos1', QOS_1), ('/qos2', QOS_2)])
|
||||||
|
@ -423,15 +333,9 @@ async def test_client_subscribe_publish(MockPluginManager):
|
||||||
assert message.qos == qos
|
assert message.qos == qos
|
||||||
await sub_client.disconnect()
|
await sub_client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_subscribe_invalid(broker):
|
||||||
async def test_client_subscribe_invalid(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
sub_client = MQTTClient()
|
sub_client = MQTTClient()
|
||||||
await sub_client.connect('mqtt://127.0.0.1')
|
await sub_client.connect('mqtt://127.0.0.1')
|
||||||
ret = await sub_client.subscribe(
|
ret = await sub_client.subscribe(
|
||||||
|
@ -441,14 +345,10 @@ async def test_client_subscribe_invalid(MockPluginManager):
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await sub_client.disconnect()
|
await sub_client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_subscribe_publish_dollar_topic_1(broker):
|
||||||
async def test_client_subscribe_publish_dollar_topic_1(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
assert broker.transitions.is_started()
|
||||||
sub_client = MQTTClient()
|
sub_client = MQTTClient()
|
||||||
await sub_client.connect('mqtt://127.0.0.1')
|
await sub_client.connect('mqtt://127.0.0.1')
|
||||||
|
@ -469,15 +369,10 @@ async def test_client_subscribe_publish_dollar_topic_1(MockPluginManager):
|
||||||
assert message is None
|
assert message is None
|
||||||
await sub_client.disconnect()
|
await sub_client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_subscribe_publish_dollar_topic_2(broker):
|
||||||
async def test_client_subscribe_publish_dollar_topic_2(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
sub_client = MQTTClient()
|
sub_client = MQTTClient()
|
||||||
await sub_client.connect('mqtt://127.0.0.1')
|
await sub_client.connect('mqtt://127.0.0.1')
|
||||||
ret = await sub_client.subscribe([('+/monitor/Clients', QOS_0)])
|
ret = await sub_client.subscribe([('+/monitor/Clients', QOS_0)])
|
||||||
|
@ -497,17 +392,11 @@ async def test_client_subscribe_publish_dollar_topic_2(MockPluginManager):
|
||||||
assert message is None
|
assert message is None
|
||||||
await sub_client.disconnect()
|
await sub_client.disconnect()
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
await broker.shutdown()
|
|
||||||
assert broker.transitions.is_stopped()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@pytest.mark.xfail(reason="see https://github.com/Yakifo/aio-hbmqtt/issues/16", strict=False)
|
@pytest.mark.xfail(reason="see https://github.com/Yakifo/aio-hbmqtt/issues/16", strict=False)
|
||||||
@patch('hbmqtt.broker.PluginManager')
|
async def test_client_publish_retain_subscribe(broker):
|
||||||
async def test_client_publish_retain_subscribe(MockPluginManager):
|
|
||||||
broker = Broker(test_config, plugin_namespace="hbmqtt.test.plugins")
|
|
||||||
await broker.start()
|
|
||||||
assert broker.transitions.is_started()
|
|
||||||
sub_client = MQTTClient()
|
sub_client = MQTTClient()
|
||||||
await sub_client.connect('mqtt://127.0.0.1', cleansession=False)
|
await sub_client.connect('mqtt://127.0.0.1', cleansession=False)
|
||||||
ret = await sub_client.subscribe([('/qos0', QOS_0), ('/qos1', QOS_1), ('/qos2', QOS_2)])
|
ret = await sub_client.subscribe([('/qos0', QOS_0), ('/qos1', QOS_1), ('/qos2', QOS_2)])
|
||||||
|
|
Ładowanie…
Reference in New Issue