Coverage report: 97%

Files Functions Classes

coverage.py v7.16.2, created at 2026-10-12 21:55 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
zenmqtt/__init__.py (no function)   100% 13 0 2   100% 0 0   100%
zenmqtt/client.py AsyncMessageIterator.__init__   100% 1 0 0   100% 0 0   100%
zenmqtt/client.py AsyncMessageIterator.__aiter__   100% 1 0 0   100% 0 0   100%
zenmqtt/client.py AsyncMessageIterator.__anext__   100% 4 0 0   100% 2 0   100%
zenmqtt/client.py MQTTClient.__init__   100% 17 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.__aenter__   100% 1 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.__aexit__   78% 9 2 0   100% 4 0   85%
zenmqtt/client.py MQTTClient.client_id   100% 1 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.connect   88% 16 2 0   75% 8 2   83%
zenmqtt/client.py MQTTClient.disconnect   100% 16 0 0   100% 8 0   100%
zenmqtt/client.py MQTTClient._drain   100% 5 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.is_connected   100% 1 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.wait_connected   100% 4 0 0   100% 4 0   100%
zenmqtt/client.py MQTTClient.server_disconnect   0% 1 1 0   100% 0 0   0%
zenmqtt/client.py MQTTClient.publish   100% 10 0 0   100% 2 0   100%
zenmqtt/client.py MQTTClient.ping   0% 1 1 0   100% 0 0   0%
zenmqtt/client.py MQTTClient.subscribe   100% 4 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.unsubscribe   100% 4 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.ack   100% 1 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient.trace   100% 3 0 0   100% 2 0   100%
zenmqtt/client.py MQTTClient.messages   100% 1 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient._next_message   100% 6 0 0   100% 2 0   100%
zenmqtt/client.py MQTTClient._connect   100% 17 0 0   75% 8 2   92%
zenmqtt/client.py MQTTClient._watch_connection   100% 8 0 0   100% 2 0   100%
zenmqtt/client.py MQTTClient._on_connection_lost   100% 2 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient._on_reconnected   100% 4 0 0   100% 2 0   100%
zenmqtt/client.py MQTTClient._on_gave_up   100% 4 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient._when_connected   82% 17 3 0   80% 10 2   81%
zenmqtt/client.py MQTTClient._set_connected   100% 3 0 0   100% 0 0   100%
zenmqtt/client.py MQTTClient._notify   100% 8 0 0   100% 4 0   100%
zenmqtt/client.py (no function)   100% 71 0 0   100% 0 0   100%
zenmqtt/connection/__init__.py register_implementation   100% 1 0 0   100% 0 0   100%
zenmqtt/connection/__init__.py create_connection   100% 12 0 0   100% 8 0   100%
zenmqtt/connection/__init__.py (no function)   100% 11 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnectionTransport.write   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnectionTransport.read   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnectionTransport.is_closing   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnectionTransport.close   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnection.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnection.write   100% 2 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnection.disconnect   100% 1 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnection.read   100% 1 0 0   100% 0 0   100%
zenmqtt/connection/base.py MQTTConnection.is_closing   100% 1 0 0   100% 0 0   100%
zenmqtt/connection/base.py (no function)   100% 16 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamReader.read   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamReader.feed_eof   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamWriter.write   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamWriter.drain   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamWriter.write_eof   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamWriter.can_write_eof   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamWriter.is_closing   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamWriter.close   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py StreamWriter.wait_closed   100% 0 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py TCPConnectionTransport.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py TCPConnectionTransport.write   100% 5 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py TCPConnectionTransport.close   100% 11 0 0   100% 2 0   100%
zenmqtt/connection/tcp.py TCPConnectionTransport.read   100% 1 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py TCPConnectionTransport.is_closing   100% 1 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py build_tcp_connection_transport   100% 2 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py build_tls_connection_transport   100% 2 0 0   100% 0 0   100%
zenmqtt/connection/tcp.py (no function)   100% 26 0 0   100% 0 0   100%
zenmqtt/exceptions.py ConnectionLostError.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/exceptions.py SessionLostError.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/exceptions.py (no function)   100% 22 0 2   100% 0 0   100%
zenmqtt/instrumentation/__init__.py (no function)   100% 3 0 0   100% 0 0   100%
zenmqtt/instrumentation/guard.py HookErrors.__init__   100% 5 0 0   100% 0 0   100%
zenmqtt/instrumentation/guard.py HookErrors.report   100% 8 0 0   100% 2 0   100%
zenmqtt/instrumentation/guard.py (no function)   100% 8 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_connect   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_connection_closed   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_packet_sent   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_packet_received   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_publish_completed   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_message_received   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_messages_buffered   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_send_quota_wait   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_messages_resent   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_ping   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_reconnect_attempt   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_reconnect_gave_up   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_ping_timeout   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_subscribe_completed   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py MetricsCollector.on_unsubscribe_completed   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py _GuardedMetrics.__init__   100% 6 0 0   100% 4 0   100%
zenmqtt/instrumentation/metrics.py _GuardedMetrics.errors   0% 1 1 0   100% 0 0   0%
zenmqtt/instrumentation/metrics.py _GuardedMetrics._guard   100% 3 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py _GuardedMetrics._guard.guarded   100% 4 0 0   100% 0 0   100%
zenmqtt/instrumentation/metrics.py guard_metrics   100% 5 0 0   100% 4 0   100%
zenmqtt/instrumentation/metrics.py (no function)   100% 26 0 0   100% 0 0   100%
zenmqtt/instrumentation/monitors.py _now   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/monitors.py BufferMonitor.__init__   100% 5 0 0   100% 0 0   100%
zenmqtt/instrumentation/monitors.py BufferMonitor.update   100% 13 0 0   100% 8 0   100%
zenmqtt/instrumentation/monitors.py AckBlockedMonitor.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/instrumentation/monitors.py AckBlockedMonitor.watch   100% 6 0 0   100% 4 0   100%
zenmqtt/instrumentation/monitors.py AckBlockedMonitor._warn   100% 5 0 0   100% 2 0   100%
zenmqtt/instrumentation/monitors.py (no function)   100% 18 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.__init__   100% 21 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_connect   100% 4 0 0   100% 2 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_connection_closed   100% 2 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_packet_sent   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_packet_received   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_publish_completed   100% 5 0 0   50% 2 1   86%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_message_received   100% 4 0 0   100% 2 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_messages_buffered   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_send_quota_wait   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_messages_resent   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_ping   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_reconnect_attempt   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_reconnect_gave_up   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_ping_timeout   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_subscribe_completed   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics.on_unsubscribe_completed   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics._record_command   100% 4 0 0   100% 2 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryMetrics._with_reason_code   100% 4 0 0   100% 2 0   100%
zenmqtt/instrumentation/opentelemetry.py _format_reason_code   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py _UserPropertiesGetter.get   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py _UserPropertiesGetter.keys   0% 1 1 0   100% 0 0   0%
zenmqtt/instrumentation/opentelemetry.py _PublishSpan.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py _PublishSpan.end   100% 11 0 0   83% 6 1   94%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryTracing.__init__   100% 3 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryTracing.start_publish   100% 8 0 0   50% 2 1   90%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryTracing.trace   100% 3 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py OpenTelemetryTracing._get_propagator   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/opentelemetry.py (no function)   100% 49 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py PublishTrace.__init__   100% 1 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py PublishTrace.end   100% 0 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py Tracing.start_publish   0% 1 1 0   100% 0 0   0%
zenmqtt/instrumentation/tracing.py Tracing.trace   0% 1 1 0   100% 0 0   0%
zenmqtt/instrumentation/tracing.py _GuardedPublishTrace.__init__   100% 3 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py _GuardedPublishTrace.end   100% 4 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py _GuardedTrace.__init__   100% 3 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py _GuardedTrace.__enter__   100% 5 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py _GuardedTrace.__exit__   100% 6 0 0   100% 2 0   100%
zenmqtt/instrumentation/tracing.py _GuardedTracing.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py _GuardedTracing.errors   0% 1 1 0   100% 0 0   0%
zenmqtt/instrumentation/tracing.py _GuardedTracing.start_publish   100% 6 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py _GuardedTracing.trace   100% 6 0 0   100% 0 0   100%
zenmqtt/instrumentation/tracing.py guard_tracing   100% 3 0 0   100% 2 0   100%
zenmqtt/instrumentation/tracing.py (no function)   100% 25 0 0   100% 0 0   100%
zenmqtt/mqtt/__init__.py (no function)   100% 0 0 0   100% 0 0   100%
zenmqtt/mqtt/auth.py parse_auth_packet   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/auth.py (no function)   100% 16 0 0   100% 0 0   100%
zenmqtt/mqtt/codec.py decode   100% 3 0 0   100% 2 0   100%
zenmqtt/mqtt/codec.py (no function)   100% 11 0 0   100% 0 0   100%
zenmqtt/mqtt/connect.py ConnectionResult.session_present   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/connect.py parse_connack_packet   100% 5 0 0   100% 0 0   100%
zenmqtt/mqtt/connect.py _no_will_properties   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/connect.py pack_connect_packet   100% 23 0 0   100% 14 0   100%
zenmqtt/mqtt/connect.py pack_disconnect_packet   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/connect.py parse_disconnect_packet   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/connect.py (no function)   100% 81 0 0   100% 0 0   100%
zenmqtt/mqtt/limits.py ServerLimits.from_connack   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/limits.py ServerLimits.check_publish   100% 7 0 0   100% 8 0   100%
zenmqtt/mqtt/limits.py ServerLimits.check_subscribe   100% 8 0 0   100% 8 0   100%
zenmqtt/mqtt/limits.py ServerLimits.check_packet_size   100% 2 0 0   100% 2 0   100%
zenmqtt/mqtt/limits.py (no function)   100% 24 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py parse_variable_byte_integer   100% 9 0 0   100% 4 0   100%
zenmqtt/mqtt/packet.py parse_fixed_header   100% 6 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py split_packet   100% 4 0 0   100% 2 0   100%
zenmqtt/mqtt/packet.py BytesReader.__init__   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.remaining   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.read   100% 6 0 0   100% 2 0   100%
zenmqtt/mqtt/packet.py BytesReader.read_byte   100% 5 0 0   100% 2 0   100%
zenmqtt/mqtt/packet.py BytesReader.read_uint16   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.read_uint32   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.read_variable_byte_integer   100% 6 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.read_binary   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.read_str   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.read_rest   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/packet.py BytesReader.ensure_end   100% 2 0 0   100% 2 0   100%
zenmqtt/mqtt/packet.py (no function)   100% 48 0 0   100% 0 0   100%
zenmqtt/mqtt/ping.py pack_pingreq_packet   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/ping.py parse_pingresp_packet   100% 4 0 0   100% 2 0   100%
zenmqtt/mqtt/ping.py (no function)   100% 9 0 0   100% 0 0   100%
zenmqtt/mqtt/properties.py _read_bool   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/properties.py _read_user_property   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/properties.py parse_properties   80% 20 4 0   80% 10 2   80%
zenmqtt/mqtt/properties.py pack_properties   100% 19 0 0   100% 10 0   100%
zenmqtt/mqtt/properties.py (no function)   100% 74 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/__init__.py (no function)   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands.__init__   100% 3 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands.subscribe   100% 6 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands.unsubscribe   100% 5 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands.handle_suback   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands.handle_unsuback   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands.on_connection_lost   100% 5 0 0   75% 4 1   89%
zenmqtt/mqtt/protocol/commands.py Commands._create_future   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands._send   100% 9 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/commands.py Commands._complete   90% 10 1 0   67% 6 2   81%
zenmqtt/mqtt/protocol/commands.py (no function)   100% 26 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.__init__   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.connection   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.connected   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.server_limits   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.set_connection   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.set_server_limits   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.mark_connected   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.mark_disconnected   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.ensure_connected   100% 4 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.write   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py ProtocolContext.now   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/context.py (no function)   100% 23 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.__init__   100% 12 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.is_connected   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.set_connection   100% 6 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.connect   100% 25 0 0   88% 8 1   97%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.disconnect   100% 10 0 0   100% 4 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.wait_outgoing_completed   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.wait_closed   100% 2 0 0   50% 2 1   75%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.close   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.publish   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.next_message   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.ack   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.subscribe   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.unsubscribe   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol.ping   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._discard_session   100% 4 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._handle_connack   100% 4 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._handle_disconnect   86% 7 1 0   50% 2 1   78%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._handle_auth   100% 3 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._read_loop   100% 19 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._dispatch   92% 25 2 0   95% 22 1   94%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._abort   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/core.py MQTTProtocol._handle_connection_lost   93% 15 1 0   88% 8 1   91%
zenmqtt/mqtt/protocol/core.py (no function)   100% 47 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.__init__   100% 10 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.inflight   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.on_new_connection   100% 3 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.on_connection_lost   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.close   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.next_message   100% 6 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.handle_publish   100% 26 0 0   100% 10 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.handle_pubrel   100% 10 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow.ack   100% 11 0 0   100% 6 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow._send_acks   95% 22 1 0   90% 10 1   94%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow._messages_waiting_for   100% 4 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow._resolve_topic_alias   100% 13 0 0   100% 10 0   100%
zenmqtt/mqtt/protocol/incoming.py IncomingFlow._enqueue   100% 3 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/incoming.py (no function)   100% 42 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/keepalive.py KeepAlive.__init__   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/keepalive.py KeepAlive.ping   75% 12 3 0   100% 2 0   79%
zenmqtt/mqtt/protocol/keepalive.py KeepAlive.handle_pingresp   100% 5 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/keepalive.py KeepAlive.start   100% 2 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/keepalive.py KeepAlive.on_connection_lost   100% 6 0 0   100% 4 0   100%
zenmqtt/mqtt/protocol/keepalive.py KeepAlive._keep_alive_loop   94% 17 1 0   100% 2 0   95%
zenmqtt/mqtt/protocol/keepalive.py (no function)   100% 15 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py _SendQuota.__init__   100% 3 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py _SendQuota.acquire   71% 14 4 0   50% 4 0   67%
zenmqtt/mqtt/protocol/outgoing.py _SendQuota.release   100% 3 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/outgoing.py _SendQuota.abort   33% 3 2 0   25% 4 1   29%
zenmqtt/mqtt/protocol/outgoing.py _SendQuota._wake_up_or_return   100% 5 0 0   75% 4 1   89%
zenmqtt/mqtt/protocol/outgoing.py _strip_topic_alias   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.__init__   100% 7 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.publish   100% 18 0 0   100% 4 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.wait_completed   100% 3 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._publish_stored   100% 11 0 0   50% 2 1   92%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.on_connected   100% 3 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.on_session_lost   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.on_connection_lost   100% 5 0 0   100% 4 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.close   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.handle_puback   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.handle_pubrec   100% 12 0 0   100% 4 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow.handle_pubcomp   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._reserve   100% 5 0 0   50% 2 1   86%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._send_stored   86% 14 2 0   75% 4 1   83%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._resend_pending_messages   93% 27 2 0   80% 10 2   89%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._complete   100% 9 0 0   67% 6 2   87%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._acquire_send_quota   100% 3 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._fail_all   100% 4 0 0   100% 2 0   100%
zenmqtt/mqtt/protocol/outgoing.py OutgoingFlow._fail   100% 2 0 0   50% 2 1   75%
zenmqtt/mqtt/protocol/outgoing.py (no function)   100% 46 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/stream.py PacketReader.__init__   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/protocol/stream.py PacketReader.read_packet   100% 24 0 0   100% 10 0   100%
zenmqtt/mqtt/protocol/stream.py PacketReader._fill   100% 9 0 0   100% 6 0   100%
zenmqtt/mqtt/protocol/stream.py (no function)   100% 10 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py pack_publish_packet   100% 7 0 0   100% 2 0   100%
zenmqtt/mqtt/publish.py parse_publish_packet   100% 9 0 0   100% 2 0   100%
zenmqtt/mqtt/publish.py parse_puback_packet   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py pack_puback_packet   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py parse_pubrec_packet   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py pack_pubrec_packet   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py parse_pubrel_packet   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py pack_pubrel_packet   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py parse_pubcomp_packet   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py pack_pubcomp_packet   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py _parse_publish_response_packet   100% 5 0 0   100% 0 0   100%
zenmqtt/mqtt/publish.py _pack_publish_response_packet   100% 6 0 0   100% 4 0   100%
zenmqtt/mqtt/publish.py (no function)   100% 81 0 0   100% 0 0   100%
zenmqtt/mqtt/reason_codes.py ReasonCode.is_failure   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/reason_codes.py ReasonCode._missing_   100% 6 0 0   100% 2 0   100%
zenmqtt/mqtt/reason_codes.py to_reason_code   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/reason_codes.py to_reason_codes   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/reason_codes.py (no function)   100% 58 0 0   100% 0 0   100%
zenmqtt/mqtt/subscribe.py pack_subscription_options   100% 12 0 0   100% 10 0   100%
zenmqtt/mqtt/subscribe.py to_subscription   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/subscribe.py pack_subscribe_packet   100% 6 0 0   100% 2 0   100%
zenmqtt/mqtt/subscribe.py parse_suback_packet   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/subscribe.py pack_unsubscribe_packet   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/subscribe.py parse_unsuback_packet   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/subscribe.py _parse_packet   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/subscribe.py (no function)   100% 46 0 0   100% 0 0   100%
zenmqtt/mqtt/utils.py pack_variable_byte_integer   100% 9 0 0   100% 4 0   100%
zenmqtt/mqtt/utils.py pack_str16   100% 2 0 0   100% 0 0   100%
zenmqtt/mqtt/utils.py pack_binary   100% 1 0 0   100% 0 0   100%
zenmqtt/mqtt/utils.py pack_fixed_header   100% 4 0 0   100% 0 0   100%
zenmqtt/mqtt/utils.py (no function)   100% 6 0 0   100% 0 0   100%
zenmqtt/reconnect.py ReconnectPolicy.__post_init__   100% 10 0 0   100% 10 0   100%
zenmqtt/reconnect.py ReconnectPolicy.delays   100% 6 0 0   100% 2 0   100%
zenmqtt/reconnect.py Reconnector.__init__   100% 8 0 0   100% 0 0   100%
zenmqtt/reconnect.py Reconnector.running   0% 1 1 0   100% 0 0   0%
zenmqtt/reconnect.py Reconnector.start   100% 1 0 0   100% 0 0   100%
zenmqtt/reconnect.py Reconnector.stop   100% 7 0 0   50% 2 1   89%
zenmqtt/reconnect.py Reconnector._run   60% 5 2 0   100% 0 0   60%
zenmqtt/reconnect.py Reconnector._reconnect_forever   100% 12 0 0   100% 4 0   100%
zenmqtt/reconnect.py Reconnector._reconnect_with_backoff   100% 22 0 0   100% 6 0   100%
zenmqtt/reconnect.py Reconnector._give_up   100% 3 0 0   100% 0 0   100%
zenmqtt/reconnect.py (no function)   100% 34 0 0   100% 0 0   100%
zenmqtt/session.py MQTTSession.reset   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.acquire_packet_identifier   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.release_packet_identifier   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.store_outgoing_message   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.mark_outgoing_message_released   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.complete_outgoing_message   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.get_pending_outgoing_messages   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.register_incoming_message   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.has_incoming_message   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py MQTTSession.complete_incoming_message   100% 0 0 1   100% 0 0   100%
zenmqtt/session.py BaseSession.__init__   100% 4 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession.reset   100% 4 0 0   100% 2 0   100%
zenmqtt/session.py BaseSession.acquire_packet_identifier   100% 5 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession.release_packet_identifier   100% 2 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession.store_outgoing_message   100% 2 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession.mark_outgoing_message_released   100% 5 0 0   100% 2 0   100%
zenmqtt/session.py BaseSession.complete_outgoing_message   100% 3 0 0   100% 2 0   100%
zenmqtt/session.py BaseSession.get_pending_outgoing_messages   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession.register_incoming_message   100% 5 0 0   100% 2 0   100%
zenmqtt/session.py BaseSession.has_incoming_message   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession.complete_incoming_message   100% 5 0 0   100% 2 0   100%
zenmqtt/session.py BaseSession._save_outgoing_message   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._load_outgoing_message   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._load_outgoing_messages   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._delete_outgoing_message   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._save_incoming_message   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._has_incoming_message   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._delete_incoming_message   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._clear   100% 0 0 0   100% 0 0   100%
zenmqtt/session.py BaseSession._get_packet_identifiers_pool   100% 10 0 0   100% 6 0   100%
zenmqtt/session.py BaseSession._release   100% 4 0 0   100% 2 0   100%
zenmqtt/session.py InMemorySession.__init__   100% 3 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._save_outgoing_message   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._load_outgoing_message   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._load_outgoing_messages   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._delete_outgoing_message   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._save_incoming_message   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._has_incoming_message   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._delete_incoming_message   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py InMemorySession._clear   100% 2 0 0   100% 0 0   100%
zenmqtt/session.py build_default_session   100% 1 0 0   100% 0 0   100%
zenmqtt/session.py (no function)   100% 79 0 11   100% 0 0   100%
zenmqtt/subscriptions.py SubscriptionRegistry.__init__   100% 1 0 0   100% 0 0   100%
zenmqtt/subscriptions.py SubscriptionRegistry.add   100% 4 0 0   100% 4 0   100%
zenmqtt/subscriptions.py SubscriptionRegistry.remove   100% 3 0 0   75% 4 1   86%
zenmqtt/subscriptions.py SubscriptionRegistry.restore   58% 12 5 0   62% 8 1   60%
zenmqtt/subscriptions.py (no function)   100% 12 0 0   100% 0 0   100%
Total     98% 2458 46 25   92% 460 33   97%

No items found using the specified filter.