Coverage report: 84%

Files Functions Classes

coverage.py v7.8.2, created at 2025-08-12 14:35 +0000

File class statements missing excluded branches partial coverage
amqtt/__init__.py (no class) 1 0 0 0 0 100%
amqtt/adapters.py ReaderAdapter 2 0 0 0 0 100%
amqtt/adapters.py WriterAdapter 5 1 0 0 0 80%
amqtt/adapters.py WebSocketsReader 15 1 0 4 0 95%
amqtt/adapters.py WebSocketsWriter 11 0 0 2 1 92%
amqtt/adapters.py StreamReaderAdapter 6 2 0 2 1 62%
amqtt/adapters.py StreamWriterAdapter 18 0 0 8 2 92%
amqtt/adapters.py BufferReader 3 1 0 0 0 67%
amqtt/adapters.py BufferWriter 7 7 0 0 0 0%
amqtt/adapters.py (no class) 60 0 0 0 0 100%
amqtt/broker.py RetainedApplicationMessage 5 0 0 0 0 100%
amqtt/broker.py Server 17 0 0 6 1 96%
amqtt/broker.py ExternalServer 4 1 0 0 0 75%
amqtt/broker.py BrokerContext 16 0 0 6 0 100%
amqtt/broker.py Broker 503 72 0 184 22 86%
amqtt/broker.py (no class) 104 0 0 0 0 100%
amqtt/client.py ClientContext 2 0 0 0 0 100%
amqtt/client.py MQTTClient 245 47 0 92 25 77%
amqtt/client.py (no class) 56 7 2 6 1 81%
amqtt/codecs_amqtt.py (no class) 63 5 0 12 2 91%
amqtt/contexts.py BaseContext 3 0 0 0 0 100%
amqtt/contexts.py Action 0 0 0 0 0 100%
amqtt/contexts.py ListenerType 1 1 0 0 0 0%
amqtt/contexts.py Dictable 18 10 0 10 1 39%
amqtt/contexts.py ListenerConfig 12 5 0 12 3 67%
amqtt/contexts.py BrokerConfig 25 1 0 20 1 96%
amqtt/contexts.py ConnectionConfig 6 6 0 6 0 0%
amqtt/contexts.py TopicConfig 3 3 0 2 0 0%
amqtt/contexts.py WillConfig 3 3 0 2 0 0%
amqtt/contexts.py ClientConfig 12 5 0 8 3 60%
amqtt/contexts.py (no class) 151 4 2 0 0 97%
amqtt/contrib/__init__.py DataClassListJSON 13 6 0 6 3 53%
amqtt/contrib/__init__.py (no class) 13 0 0 0 0 100%
amqtt/contrib/auth_db/__init__.py DBType 0 0 0 0 0 100%
amqtt/contrib/auth_db/__init__.py DBInfo 0 0 0 0 0 100%
amqtt/contrib/auth_db/__init__.py (no class) 27 4 0 2 0 86%
amqtt/contrib/auth_db/managers.py UserManager 52 8 0 6 2 83%
amqtt/contrib/auth_db/managers.py TopicManager 59 10 0 10 3 81%
amqtt/contrib/auth_db/managers.py (no class) 30 0 0 0 0 100%
amqtt/contrib/auth_db/models.py AllowedTopic 9 3 0 4 1 69%
amqtt/contrib/auth_db/models.py PasswordHasher 10 2 0 6 1 81%
amqtt/contrib/auth_db/models.py Base 0 0 0 0 0 100%
amqtt/contrib/auth_db/models.py UserAuth 5 2 0 0 0 60%
amqtt/contrib/auth_db/models.py TopicAuth 2 0 0 0 0 100%
amqtt/contrib/auth_db/models.py (no class) 51 0 2 0 0 100%
amqtt/contrib/auth_db/plugin.py UserAuthDBPlugin 15 4 0 6 3 67%
amqtt/contrib/auth_db/plugin.py UserAuthDBPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/auth_db/plugin.py TopicAuthDBPlugin 15 5 0 4 2 63%
amqtt/contrib/auth_db/plugin.py TopicAuthDBPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/auth_db/plugin.py (no class) 36 0 0 0 0 100%
amqtt/contrib/auth_db/topic_mgr_cli.py (no class) 86 15 0 20 5 81%
amqtt/contrib/auth_db/user_mgr_cli.py (no class) 98 13 0 24 4 86%
amqtt/contrib/cert.py UserAuthCertPlugin 18 5 0 8 3 69%
amqtt/contrib/cert.py UserAuthCertPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/cert.py (no class) 55 3 0 0 0 95%
amqtt/contrib/http.py ResponseMode 0 0 0 0 0 100%
amqtt/contrib/http.py RequestMethod 0 0 0 0 0 100%
amqtt/contrib/http.py ParamsMode 0 0 0 0 0 100%
amqtt/contrib/http.py ACLError 0 0 0 0 0 100%
amqtt/contrib/http.py HttpConfig 0 0 0 0 0 100%
amqtt/contrib/http.py AuthHttpPlugin 42 1 0 18 1 97%
amqtt/contrib/http.py UserAuthHttpPlugin 2 0 0 0 0 100%
amqtt/contrib/http.py UserAuthHttpPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/http.py TopicAuthHttpPlugin 12 5 0 8 2 45%
amqtt/contrib/http.py TopicAuthHttpPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/http.py (no class) 74 4 0 0 0 95%
amqtt/contrib/jwt.py Algorithms 0 0 0 0 0 100%
amqtt/contrib/jwt.py UserAuthJwtPlugin 11 4 0 2 1 62%
amqtt/contrib/jwt.py UserAuthJwtPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/jwt.py TopicAuthJwtPlugin 16 8 0 4 2 50%
amqtt/contrib/jwt.py TopicAuthJwtPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/jwt.py (no class) 58 4 0 0 0 93%
amqtt/contrib/ldap.py LdapConfig 0 0 0 0 0 100%
amqtt/contrib/ldap.py AuthLdapPlugin 7 2 0 0 0 71%
amqtt/contrib/ldap.py UserAuthLdapPlugin 19 7 0 2 1 62%
amqtt/contrib/ldap.py UserAuthLdapPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/ldap.py TopicAuthLdapPlugin 19 6 0 6 3 64%
amqtt/contrib/ldap.py TopicAuthLdapPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/ldap.py (no class) 41 0 0 0 0 100%
amqtt/contrib/persistence.py Base 0 0 0 0 0 100%
amqtt/contrib/persistence.py RetainedMessage 0 0 0 0 0 100%
amqtt/contrib/persistence.py Subscription 0 0 0 0 0 100%
amqtt/contrib/persistence.py StoredSession 0 0 0 0 0 100%
amqtt/contrib/persistence.py StoredMessage 0 0 0 0 0 100%
amqtt/contrib/persistence.py SessionDBPlugin 103 13 0 34 9 84%
amqtt/contrib/persistence.py SessionDBPlugin.Config 2 1 0 2 1 50%
amqtt/contrib/persistence.py (no class) 63 0 0 0 0 100%
amqtt/contrib/shadows/__init__.py (no class) 3 0 0 0 0 100%
amqtt/contrib/shadows/messages.py ShadowMessage 1 0 0 0 0 100%
amqtt/contrib/shadows/messages.py GetAcceptedMessage 1 0 0 0 0 100%
amqtt/contrib/shadows/messages.py GetRejectedMessage 1 0 0 0 0 100%
amqtt/contrib/shadows/messages.py UpdateAcceptedMessage 1 0 0 0 0 100%
amqtt/contrib/shadows/messages.py UpdateRejectedMessage 1 1 0 0 0 0%
amqtt/contrib/shadows/messages.py UpdateDeltaMessage 1 0 0 0 0 100%
amqtt/contrib/shadows/messages.py UpdateIotaMessage 1 0 0 0 0 100%
amqtt/contrib/shadows/messages.py UpdateDocumentMessage 1 0 0 0 0 100%
amqtt/contrib/shadows/messages.py (no class) 70 1 0 10 1 98%
amqtt/contrib/shadows/models.py ShadowUpdateError 1 1 0 0 0 0%
amqtt/contrib/shadows/models.py ShadowBase 0 0 0 0 0 100%
amqtt/contrib/shadows/models.py Shadow 10 0 0 2 0 100%
amqtt/contrib/shadows/models.py (no class) 58 3 0 6 1 94%
amqtt/contrib/shadows/plugin.py ShadowTopic 0 0 0 0 0 100%
amqtt/contrib/shadows/plugin.py ShadowPlugin 51 2 0 14 4 91%
amqtt/contrib/shadows/plugin.py ShadowPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/shadows/plugin.py ShadowTopicAuthPlugin 7 7 0 4 0 0%
amqtt/contrib/shadows/plugin.py ShadowTopicAuthPlugin.Config 0 0 0 0 0 100%
amqtt/contrib/shadows/plugin.py (no class) 41 1 0 0 0 98%
amqtt/contrib/shadows/states.py StateError 1 1 0 0 0 0%
amqtt/contrib/shadows/states.py MetaTimestamp 16 10 0 4 2 40%
amqtt/contrib/shadows/states.py State 3 0 0 0 0 100%
amqtt/contrib/shadows/states.py StateDocument 10 1 0 4 1 86%
amqtt/contrib/shadows/states.py ShadowOperation 0 0 0 0 0 100%
amqtt/contrib/shadows/states.py (no class) 89 11 0 26 4 83%
amqtt/errors.py AMQTTError 0 0 0 0 0 100%
amqtt/errors.py MQTTError 0 0 0 0 0 100%
amqtt/errors.py CodecError 0 0 0 0 0 100%
amqtt/errors.py NoDataError 0 0 0 0 0 100%
amqtt/errors.py ZeroLengthReadError 1 0 0 0 0 100%
amqtt/errors.py BrokerError 0 0 0 0 0 100%
amqtt/errors.py PluginError 0 0 0 0 0 100%
amqtt/errors.py PluginImportError 0 0 0 0 0 100%
amqtt/errors.py PluginCoroError 0 0 0 0 0 100%
amqtt/errors.py PluginInitError 1 0 0 0 0 100%
amqtt/errors.py ClientError 0 0 0 0 0 100%
amqtt/errors.py ConnectError 0 0 0 0 0 100%
amqtt/errors.py ProtocolHandlerError 0 0 0 0 0 100%
amqtt/errors.py PluginLoadError 0 0 0 0 0 100%
amqtt/errors.py (no class) 18 0 0 0 0 100%
amqtt/events.py Events 0 0 0 0 0 100%
amqtt/events.py ClientEvents 0 0 0 0 0 100%
amqtt/events.py MQTTEvents 0 0 0 0 0 100%
amqtt/events.py BrokerEvents 0 0 0 0 0 100%
amqtt/events.py (no class) 23 4 0 0 0 83%
amqtt/mqtt/__init__.py (no class) 29 5 0 2 1 81%
amqtt/mqtt/connack.py ConnackVariableHeader 12 0 0 0 0 100%
amqtt/mqtt/connack.py ConnackPacket 25 3 0 12 3 84%
amqtt/mqtt/connack.py (no class) 32 0 0 0 0 100%
amqtt/mqtt/connect.py ConnectVariableHeader 39 1 0 2 0 98%
amqtt/mqtt/connect.py ConnectPayload 47 0 0 20 3 96%
amqtt/mqtt/connect.py ConnectPacket 137 17 0 68 17 83%
amqtt/mqtt/connect.py (no class) 126 0 0 0 0 100%
amqtt/mqtt/constants.py (no class) 3 0 0 0 0 100%
amqtt/mqtt/disconnect.py DisconnectPacket 9 2 0 4 1 77%
amqtt/mqtt/disconnect.py (no class) 6 0 0 0 0 100%
amqtt/mqtt/packet.py MQTTFixedHeader 48 5 0 8 0 91%
amqtt/mqtt/packet.py MQTTVariableHeader 4 3 0 0 0 25%
amqtt/mqtt/packet.py PacketIdVariableHeader 6 0 0 0 0 100%
amqtt/mqtt/packet.py MQTTPayload 4 3 0 0 0 25%
amqtt/mqtt/packet.py MQTTPacket 30 0 0 12 1 98%
amqtt/mqtt/packet.py (no class) 78 3 0 0 0 96%
amqtt/mqtt/pingreq.py PingReqPacket 9 2 0 4 1 77%
amqtt/mqtt/pingreq.py (no class) 6 0 0 0 0 100%
amqtt/mqtt/pingresp.py PingRespPacket 10 2 0 4 1 79%
amqtt/mqtt/pingresp.py (no class) 9 0 0 0 0 100%
amqtt/mqtt/protocol/__init__.py (no class) 0 0 0 0 0 100%
amqtt/mqtt/protocol/broker_handler.py Subscription 2 0 0 0 0 100%
amqtt/mqtt/protocol/broker_handler.py UnSubscription 2 0 0 0 0 100%
amqtt/mqtt/protocol/broker_handler.py BrokerProtocolHandler 120 38 0 52 21 65%
amqtt/mqtt/protocol/broker_handler.py (no class) 44 0 2 0 0 100%
amqtt/mqtt/protocol/client_handler.py ClientProtocolHandler 114 22 0 38 13 77%
amqtt/mqtt/protocol/client_handler.py (no class) 33 0 2 0 0 100%
amqtt/mqtt/protocol/handler.py ProtocolHandler 444 141 0 186 44 67%
amqtt/mqtt/protocol/handler.py (no class) 73 7 0 0 0 90%
amqtt/mqtt/puback.py PubackPacket 17 1 0 8 1 92%
amqtt/mqtt/puback.py (no class) 13 0 0 0 0 100%
amqtt/mqtt/pubcomp.py PubcompPacket 19 1 0 8 1 93%
amqtt/mqtt/pubcomp.py (no class) 13 0 0 0 0 100%
amqtt/mqtt/publish.py PublishVariableHeader 16 0 0 4 0 100%
amqtt/mqtt/publish.py PublishPayload 15 2 0 4 1 84%
amqtt/mqtt/publish.py PublishPacket 54 2 0 18 2 94%
amqtt/mqtt/publish.py (no class) 56 0 0 0 0 100%
amqtt/mqtt/pubrec.py PubrecPacket 19 1 0 8 1 93%
amqtt/mqtt/pubrec.py (no class) 13 0 0 0 0 100%
amqtt/mqtt/pubrel.py PubrelPacket 19 1 0 8 1 93%
amqtt/mqtt/pubrel.py (no class) 13 0 0 0 0 100%
amqtt/mqtt/suback.py SubackPayload 20 4 0 6 1 81%
amqtt/mqtt/suback.py SubackPacket 12 2 0 4 1 81%
amqtt/mqtt/suback.py (no class) 23 0 0 0 0 100%
amqtt/mqtt/subscribe.py SubscribePayload 24 4 0 6 1 83%
amqtt/mqtt/subscribe.py SubscribePacket 12 2 0 4 1 81%
amqtt/mqtt/subscribe.py (no class) 19 0 0 0 0 100%
amqtt/mqtt/unsuback.py UnsubackPacket 11 2 0 4 1 80%
amqtt/mqtt/unsuback.py (no class) 9 0 0 0 0 100%
amqtt/mqtt/unsubscribe.py UnubscribePayload 20 4 0 6 1 81%
amqtt/mqtt/unsubscribe.py UnsubscribePacket 12 2 0 4 1 81%
amqtt/mqtt/unsubscribe.py (no class) 18 0 0 0 0 100%
amqtt/plugins/__init__.py TopicMatcher 14 1 0 10 1 92%
amqtt/plugins/__init__.py (no class) 8 0 0 0 0 100%
amqtt/plugins/authentication.py AnonymousAuthPlugin 13 0 0 6 1 95%
amqtt/plugins/authentication.py AnonymousAuthPlugin.Config 0 0 0 0 0 100%
amqtt/plugins/authentication.py FileAuthPlugin 46 10 0 20 4 79%
amqtt/plugins/authentication.py FileAuthPlugin.Config 0 0 0 0 0 100%
amqtt/plugins/authentication.py (no class) 23 0 0 0 0 100%
amqtt/plugins/base.py BasePlugin 15 5 0 10 3 60%
amqtt/plugins/base.py BasePlugin.Config 0 0 0 0 0 100%
amqtt/plugins/base.py BaseTopicPlugin 12 0 0 8 0 100%
amqtt/plugins/base.py BaseAuthPlugin 12 1 0 8 1 90%
amqtt/plugins/base.py (no class) 20 0 0 0 0 100%
amqtt/plugins/logging_amqtt.py EventLoggerPlugin 8 0 0 4 0 100%
amqtt/plugins/logging_amqtt.py PacketLoggerPlugin 8 1 0 8 1 88%
amqtt/plugins/logging_amqtt.py (no class) 17 0 0 0 0 100%
amqtt/plugins/manager.py Plugin 0 0 0 0 0 100%
amqtt/plugins/manager.py PluginManager 178 35 0 76 12 78%
amqtt/plugins/manager.py (no class) 56 3 0 0 0 95%
amqtt/plugins/persistence.py SQLitePlugin 2 0 0 0 0 100%
amqtt/plugins/persistence.py (no class) 5 0 0 0 0 100%
amqtt/plugins/sys/__init__.py (no class) 0 0 0 0 0 100%
amqtt/plugins/sys/broker.py BrokerSysPlugin 68 2 0 22 3 94%
amqtt/plugins/sys/broker.py BrokerSysPlugin.Config 0 0 0 0 0 100%
amqtt/plugins/sys/broker.py (no class) 65 11 0 6 1 83%
amqtt/plugins/topic_checking.py TopicTabooPlugin 8 0 0 4 0 100%
amqtt/plugins/topic_checking.py TopicAccessControlListPlugin 51 5 0 28 2 91%
amqtt/plugins/topic_checking.py TopicAccessControlListPlugin.Config 0 0 0 0 0 100%
amqtt/plugins/topic_checking.py (no class) 19 0 0 0 0 100%
amqtt/session.py ApplicationMessage 24 1 0 2 1 92%
amqtt/session.py IncomingApplicationMessage 2 0 0 0 0 100%
amqtt/session.py OutgoingApplicationMessage 2 0 0 0 0 100%
amqtt/session.py Session 71 13 0 14 3 79%
amqtt/session.py (no class) 42 0 2 0 0 100%
amqtt/utils.py (no class) 49 10 0 10 2 80%
Total   5637 740 12 1364 278 84%

No items found using the specified filter.