Merge pull request #201 from ajmirsky/issues/67

clarifying reason for `ClientError`
pull/198/head^2
Andrew Mirsky 2025-06-14 10:01:06 -04:00 zatwierdzone przez GitHub
commit 67fd2970ab
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
2 zmienionych plików z 22 dodań i 6 usunięć

Wyświetl plik

@ -470,6 +470,7 @@ class MQTTClient:
reader: StreamReaderAdapter | WebSocketsReader | None = None
writer: StreamWriterAdapter | WebSocketsWriter | None = None
self._connected_state.clear()
# Open connection
if scheme in ("mqtt", "mqtts"):
conn_reader, conn_writer = await asyncio.open_connection(
@ -489,11 +490,11 @@ class MQTTClient:
)
reader = WebSocketsReader(websocket)
writer = WebSocketsWriter(websocket)
if reader is None or writer is None:
self.session.transitions.disconnect()
self.logger.warning("reader or writer not initialized")
msg = "reader or writer not initialized"
elif not self.session.broker_uri:
msg = "missing broker uri"
raise ClientError(msg)
else:
msg = f"incorrect scheme defined in uri: '{scheme!r}'"
raise ClientError(msg)
# Start MQTT protocol

Wyświetl plik

@ -7,7 +7,7 @@ import pytest
from amqtt.broker import Broker
from amqtt.client import MQTTClient
from amqtt.errors import ConnectError
from amqtt.errors import ClientError, ConnectError
from amqtt.mqtt.constants import QOS_0, QOS_1, QOS_2
formatter = "[%(asctime)s] %(name)s {%(filename)s:%(lineno)d} %(levelname)s - %(message)s"
@ -301,6 +301,21 @@ async def test_client_publish_will_with_retain(broker_fixture, client_config):
@pytest.mark.asyncio
async def test_connect_broken_uri():
config = {"auto_reconnect": False}
client = MQTTClient(config=config)
with pytest.raises(ClientError):
await client.connect('"mqtt://someplace')
@pytest.mark.asyncio
async def test_connect_incorrect_scheme():
config = {"auto_reconnect": False}
client = MQTTClient(config=config)
with pytest.raises(ClientError):
await client.connect('"mq://someplace')
async def test_client_no_auth():