Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JonathanPlasse committed Nov 5, 2022
1 parent 15a6c11 commit 0e3c83f
Show file tree
Hide file tree
Showing 7 changed files with 323 additions and 39 deletions.
3 changes: 2 additions & 1 deletion asyncio_mqtt/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
from .client import Client, ProtocolVersion, TLSParameters, Will
from .client import Client, ProtocolVersion, ProxySettings, TLSParameters, Will
from .error import MqttCodeError, MqttError
from .version import __version__

Expand All @@ -8,6 +8,7 @@
"MqttCodeError",
"Client",
"Will",
"ProxySettings",
"ProtocolVersion",
"TLSParameters",
"__version__",
Expand Down
21 changes: 12 additions & 9 deletions asyncio_mqtt/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
Generator,
Iterable,
Iterator,
List,
Tuple,
Union,
cast,
Expand All @@ -45,8 +46,8 @@
_PahoSocket = Union[socket.socket, ssl.SSLSocket, mqtt.WebsocketWrapper, Any]

WebSocketHeaders = Union[
Dict[str, Any],
Callable[[Dict[str, Any]], Dict[str, Any]],
Dict[str, str],
Callable[[Dict[str, str]], Dict[str, str]],
]


Expand Down Expand Up @@ -107,6 +108,13 @@ def __init__(
Tuple[int, int, None, int],
]

SubscribeTopic = Union[
str,
Tuple[str, mqtt.SubscribeOptions],
List[Tuple[str, mqtt.SubscribeOptions]],
List[Tuple[str, int]],
]

P = ParamSpec("P")

# TODO: Simplify the logic that surrounds `self._outgoing_calls_sem` with
Expand Down Expand Up @@ -238,7 +246,7 @@ def __init__(
self._client.message_retry_set(message_retry_set)
if socket_options is None:
socket_options = ()
self._socket_options: tuple[SocketOption, ...] = tuple(socket_options)
self._socket_options = tuple(socket_options)

@property
def id(self) -> str:
Expand Down Expand Up @@ -300,12 +308,7 @@ async def force_disconnect(self) -> None:
@_outgoing_call
async def subscribe(
self,
topic: (
str
| tuple[str, mqtt.SubscribeOptions]
| list[tuple[str, mqtt.SubscribeOptions]]
| list[tuple[str, int]]
),
topic: SubscribeTopic,
qos: int = 0,
options: mqtt.SubscribeOptions | None = None,
properties: Properties | None = None,
Expand Down
9 changes: 9 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,12 @@ profile = "black"
strict = true
show_error_codes = true
no_strict_concatenate = true # TODO: remove when dropping python 3.7

[tool.pytest.ini_options]
filterwarnings = [
"error",
"ignore:ssl.PROTOCOL_TLS is deprecated:DeprecationWarning",
]

[tool.coverage.run]
branch = true
11 changes: 4 additions & 7 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
from __future__ import annotations

import sys
from typing import Any, Dict, Tuple
from typing import Any

import pytest


@pytest.fixture
def os_and_version() -> str:
return sys.platform + "_" + ".".join(map(str, sys.version_info[:2]))


@pytest.fixture
def anyio_backend() -> Tuple[str, Dict[str, Any]]:
def anyio_backend() -> tuple[str, dict[str, Any]]:
if sys.platform == "win32":
from asyncio.windows_events import WindowsSelectorEventLoopPolicy

Expand Down
24 changes: 24 additions & 0 deletions tests/mosquitto.org.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEAzCCAuugAwIBAgIUBY1hlCGvdj4NhBXkZ/uLUZNILAwwDQYJKoZIhvcNAQEL
BQAwgZAxCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwG
A1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1vc3F1aXR0bzELMAkGA1UECwwCQ0ExFjAU
BgNVBAMMDW1vc3F1aXR0by5vcmcxHzAdBgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hv
by5vcmcwHhcNMjAwNjA5MTEwNjM5WhcNMzAwNjA3MTEwNjM5WjCBkDELMAkGA1UE
BhMCR0IxFzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTES
MBAGA1UECgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVp
dHRvLm9yZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAME0HKmIzfTOwkKLT3THHe+ObdizamPg
UZmD64Tf3zJdNeYGYn4CEXbyP6fy3tWc8S2boW6dzrH8SdFf9uo320GJA9B7U1FW
Te3xda/Lm3JFfaHjkWw7jBwcauQZjpGINHapHRlpiCZsquAthOgxW9SgDgYlGzEA
s06pkEFiMw+qDfLo/sxFKB6vQlFekMeCymjLCbNwPJyqyhFmPWwio/PDMruBTzPH
3cioBnrJWKXc3OjXdLGFJOfj7pP0j/dr2LH72eSvv3PQQFl90CZPFhrCUcRHSSxo
E6yjGOdnz7f6PveLIB574kQORwt8ePn0yidrTC1ictikED3nHYhMUOUCAwEAAaNT
MFEwHQYDVR0OBBYEFPVV6xBUFPiGKDyo5V3+Hbh4N9YSMB8GA1UdIwQYMBaAFPVV
6xBUFPiGKDyo5V3+Hbh4N9YSMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggEBAGa9kS21N70ThM6/Hj9D7mbVxKLBjVWe2TPsGfbl3rEDfZ+OKRZ2j6AC
6r7jb4TZO3dzF2p6dgbrlU71Y/4K0TdzIjRj3cQ3KSm41JvUQ0hZ/c04iGDg/xWf
+pp58nfPAYwuerruPNWmlStWAXf0UTqRtg4hQDWBuUFDJTuWuuBvEXudz74eh/wK
sMwfu1HFvjy5Z0iMDU8PUDepjVolOCue9ashlS4EB5IECdSR2TItnAIiIwimx839
LdUdRudafMu5T5Xma182OC0/u/xRlEm+tvKGGmfFcN0piqVl8OrSPBgIlb+1IKJE
m/XriWr/Cq4h/JfB7NTsezVslgkBaoU=
-----END CERTIFICATE-----
Loading

0 comments on commit 0e3c83f

Please sign in to comment.