Coverage report: 83%

Files Functions Classes

coverage.py v7.15.2, created at 2026-08-18 04:30 +0000

File class   statements missing excluded   coverage
slidge/__init__.py (no class)   24 4 0   83%
slidge/__main__.py (no class)   2 2 0   0%
slidge/command/__init__.py (no class)   8 1 0   88%
slidge/command/adhoc.py AdhocProvider   160 29 0   82%
slidge/command/adhoc.py (no class)   41 1 2   98%
slidge/command/admin.py AdminCommand   0 0 0   100%
slidge/command/admin.py ListUsers   7 7 0   0%
slidge/command/admin.py SlidgeInfo   27 27 0   0%
slidge/command/admin.py DeleteUser   12 12 0   0%
slidge/command/admin.py ChangeLoglevel   2 2 0   0%
slidge/command/admin.py Exec   10 10 0   0%
slidge/command/admin.py (no class)   54 0 2   100%
slidge/command/base.py TableResult   8 0 0   100%
slidge/command/base.py SearchResult   0 0 0   100%
slidge/command/base.py Confirmation   5 0 0   100%
slidge/command/base.py ConfirmationSession   0 0 0   100%
slidge/command/base.py ConfirmationRecipient   0 0 0   100%
slidge/command/base.py Form   12 0 0   100%
slidge/command/base.py FormSession   0 0 0   100%
slidge/command/base.py FormRecipient   0 0 0   100%
slidge/command/base.py CommandAccess   0 0 0   100%
slidge/command/base.py Option   0 0 0   100%
slidge/command/base.py FormField   49 10 0   80%
slidge/command/base.py CommandBase   0 0 0   100%
slidge/command/base.py Command   21 2 0   90%
slidge/command/base.py _RecipientCommand   0 0 1   100%
slidge/command/base.py ContactCommand   0 0 0   100%
slidge/command/base.py MUCCommand   0 0 0   100%
slidge/command/base.py (no class)   114 0 3   100%
slidge/command/categories.py CommandCategory   0 0 0   100%
slidge/command/categories.py (no class)   7 0 0   100%
slidge/command/chat_command.py ChatCommandProvider   189 65 0   66%
slidge/command/chat_command.py (no class)   41 1 2   98%
slidge/command/register.py RegistrationType   0 0 0   100%
slidge/command/register.py TwoFactorNotRequired   0 0 0   100%
slidge/command/register.py Register   47 47 0   0%
slidge/command/register.py (no class)   34 0 0   100%
slidge/command/user.py Search   10 10 0   0%
slidge/command/user.py SyncContacts   28 28 0   0%
slidge/command/user.py ListContacts   4 4 0   0%
slidge/command/user.py ListGroups   4 4 0   0%
slidge/command/user.py ListSpaces   3 3 0   0%
slidge/command/user.py ListRoomsInSpace   13 13 0   0%
slidge/command/user.py Login   14 14 0   0%
slidge/command/user.py CreateGroup   8 8 0   0%
slidge/command/user.py Preferences   19 19 0   0%
slidge/command/user.py Unregister   4 4 0   0%
slidge/command/user.py LeaveGroup   8 8 0   0%
slidge/command/user.py InviteInGroups   5 5 0   0%
slidge/command/user.py (no class)   123 2 0   98%
slidge/contact/__init__.py (no class)   3 0 0   100%
slidge/contact/contact.py LegacyContact   189 35 2   81%
slidge/contact/contact.py (no class)   90 1 3   99%
slidge/contact/roster.py ContactIsUser   0 0 0   100%
slidge/contact/roster.py LegacyRoster   92 31 1   66%
slidge/contact/roster.py (no class)   38 0 0   100%
slidge/core/__init__.py (no class)   2 0 0   100%
slidge/core/attachment_upload.py AttachmentUploader   125 22 0   82%
slidge/core/attachment_upload.py _AttachmentWithName   0 0 0   100%
slidge/core/attachment_upload.py _AttachmentWithMetadata   0 0 0   100%
slidge/core/attachment_upload.py (no class)   104 18 3   83%
slidge/core/config.py _Categories   0 0 0   100%
slidge/core/config.py (no class)   107 0 0   100%
slidge/core/dispatcher/__init__.py (no class)   2 0 0   100%
slidge/core/dispatcher/caps.py CapsMixin   35 4 0   89%
slidge/core/dispatcher/caps.py (no class)   11 0 2   100%
slidge/core/dispatcher/disco.py DiscoMixin   72 8 0   89%
slidge/core/dispatcher/disco.py (no class)   24 0 2   100%
slidge/core/dispatcher/message/__init__.py MessageMixin   0 0 0   100%
slidge/core/dispatcher/message/__init__.py (no class)   6 0 0   100%
slidge/core/dispatcher/message/chat_state.py ChatStateMixin   7 0 0   100%
slidge/core/dispatcher/message/chat_state.py (no class)   9 0 2   100%
slidge/core/dispatcher/message/marker.py MarkerMixin   30 4 0   87%
slidge/core/dispatcher/message/marker.py (no class)   14 0 2   100%
slidge/core/dispatcher/message/message.py _IncomingAttachment   0 0 0   100%
slidge/core/dispatcher/message/message.py MessageContentMixin   227 46 0   80%
slidge/core/dispatcher/message/message.py (no class)   55 3 2   95%
slidge/core/dispatcher/muc/__init__.py MucMixin   0 0 0   100%
slidge/core/dispatcher/muc/__init__.py (no class)   8 0 0   100%
slidge/core/dispatcher/muc/admin.py MucAdminMixin   43 4 0   91%
slidge/core/dispatcher/muc/admin.py (no class)   14 0 2   100%
slidge/core/dispatcher/muc/mam.py MamMixin   36 4 0   89%
slidge/core/dispatcher/muc/mam.py (no class)   16 0 2   100%
slidge/core/dispatcher/muc/misc.py MucMiscMixin   55 5 0   91%
slidge/core/dispatcher/muc/misc.py (no class)   21 0 2   100%
slidge/core/dispatcher/muc/owner.py MucOwnerMixin   39 1 0   97%
slidge/core/dispatcher/muc/owner.py (no class)   13 0 2   100%
slidge/core/dispatcher/muc/ping.py PingMixin   24 10 0   58%
slidge/core/dispatcher/muc/ping.py (no class)   12 0 2   100%
slidge/core/dispatcher/presence.py _IsDirectedAtComponent   1 0 0   100%
slidge/core/dispatcher/presence.py PresenceHandlerMixin   106 22 0   79%
slidge/core/dispatcher/presence.py (no class)   31 0 2   100%
slidge/core/dispatcher/pubsub.py PubSubMixin   109 6 0   94%
slidge/core/dispatcher/pubsub.py (no class)   24 0 0   100%
slidge/core/dispatcher/registration.py RegistrationMixin   55 31 0   44%
slidge/core/dispatcher/registration.py (no class)   18 0 2   100%
slidge/core/dispatcher/search.py SearchMixin   44 22 0   50%
slidge/core/dispatcher/search.py (no class)   11 0 2   100%
slidge/core/dispatcher/session_dispatcher.py SessionDispatcher   40 9 0   78%
slidge/core/dispatcher/session_dispatcher.py (no class)   23 0 2   100%
slidge/core/dispatcher/util.py Ignore   0 0 0   100%
slidge/core/dispatcher/util.py DispatcherMixin   50 5 0   90%
slidge/core/dispatcher/util.py (no class)   62 1 2   98%
slidge/core/dispatcher/vcard.py VCardMixin   80 11 0   86%
slidge/core/dispatcher/vcard.py (no class)   20 0 2   100%
slidge/core/gateway.py BaseGateway   332 171 3   48%
slidge/core/gateway.py (no class)   130 0 0   100%
slidge/core/mixins/__init__.py FullMixin   0 0 0   100%
slidge/core/mixins/__init__.py FullCarbonMixin   0 0 0   100%
slidge/core/mixins/__init__.py (no class)   9 0 0   100%
slidge/core/mixins/attachment.py AttachmentMixin   183 11 0   94%
slidge/core/mixins/attachment.py (no class)   63 5 0   92%
slidge/core/mixins/avatar.py AvatarMixin   78 15 1   81%
slidge/core/mixins/avatar.py (no class)   31 0 2   100%
slidge/core/mixins/base.py Base   0 0 1   100%
slidge/core/mixins/base.py SessionBound   3 0 0   100%
slidge/core/mixins/base.py BaseSender   0 0 1   100%
slidge/core/mixins/base.py (no class)   22 0 2   100%
slidge/core/mixins/db.py DBMixin   9 0 0   100%
slidge/core/mixins/db.py UpdateInfoMixin   27 1 0   96%
slidge/core/mixins/db.py (no class)   19 0 2   100%
slidge/core/mixins/disco.py BaseDiscoMixin   28 4 0   86%
slidge/core/mixins/disco.py ChatterDiscoMixin   30 0 0   100%
slidge/core/mixins/disco.py ContactAccountDiscoMixin   9 0 0   100%
slidge/core/mixins/disco.py (no class)   36 0 2   100%
slidge/core/mixins/message.py ChatStateMixin   13 11 0   15%
slidge/core/mixins/message.py MarkerMixin   34 2 0   94%
slidge/core/mixins/message.py ContentMessageMixin   0 0 0   100%
slidge/core/mixins/message.py CarbonMessageMixin   10 0 0   100%
slidge/core/mixins/message.py InviteMixin   7 1 0   86%
slidge/core/mixins/message.py MessageMixin   0 0 0   100%
slidge/core/mixins/message.py MessageCarbonMixin   0 0 0   100%
slidge/core/mixins/message.py (no class)   42 0 0   100%
slidge/core/mixins/message_maker.py MessageMaker   105 20 0   81%
slidge/core/mixins/message_maker.py (no class)   34 0 0   100%
slidge/core/mixins/message_text.py TextMessageMixin   64 10 0   84%
slidge/core/mixins/message_text.py (no class)   17 0 0   100%
slidge/core/mixins/presence.py _NoChange   0 0 0   100%
slidge/core/mixins/presence.py PresenceMixin   79 6 0   92%
slidge/core/mixins/presence.py (no class)   49 6 0   88%
slidge/core/mixins/recipient.py ReactionMixin   12 0 0   100%
slidge/core/mixins/recipient.py ThreadMixin   1 0 0   100%
slidge/core/mixins/recipient.py MessageMixin   0 0 4   100%
slidge/core/mixins/recipient.py RecipientMixin   1 1 0   0%
slidge/core/mixins/recipient.py (no class)   19 0 0   100%
slidge/core/pubsub.py PepAvatar   13 0 0   100%
slidge/core/pubsub.py PubSubComponent   171 38 0   78%
slidge/core/pubsub.py (no class)   56 0 0   100%
slidge/core/session.py CachedPresence   0 0 0   100%
slidge/core/session.py BaseSession   150 40 7   73%
slidge/core/session.py (no class)   87 0 0   100%
slidge/db/__init__.py (no class)   3 0 0   100%
slidge/db/alembic/__init__.py (no class)   0 0 0   100%
slidge/db/alembic/env.py (no class)   24 9 0   62%
slidge/db/alembic/versions/259a1b71eadf_add_origin_group_id_table.py (no class)   15 3 0   80%
slidge/db/alembic/versions/39ce1636571a_store_only_local_parts_of_jids.py (no class)   25 2 0   92%
slidge/db/alembic/versions/805fdc0bf984_add_unique_constraint_for_occupant_id.py (no class)   12 2 0   83%
slidge/db/alembic/versions/86d980dbb426_add_displayed_by_user_column_to_.py (no class)   15 2 0   87%
slidge/db/alembic/versions/abea9b63fa34_add_unique_constraint_on_avatar_url.py (no class)   13 2 0   85%
slidge/db/alembic/versions/b7a06a86416a_add_occupant_id_column_to_participant.py (no class)   14 2 0   86%
slidge/db/alembic/versions/bdf1c8b85ea3_spaces.py (no class)   19 5 0   74%
slidge/db/alembic/versions/cef02a8b1451_initial_schema.py (no class)   58 24 0   59%
slidge/db/alembic/versions/e365e04e9ac3_fix_missing_existing_constraints_in_.py (no class)   32 9 0   72%
slidge/db/avatar.py CachedAvatar   10 4 0   60%
slidge/db/avatar.py NotModified   0 0 0   100%
slidge/db/avatar.py AvatarCache   100 12 0   88%
slidge/db/avatar.py (no class)   55 0 0   100%
slidge/db/meta.py JIDType   6 2 0   67%
slidge/db/meta.py JSONEncodedDict   6 0 0   100%
slidge/db/meta.py Base   0 0 0   100%
slidge/db/meta.py (no class)   28 6 0   79%
slidge/db/models.py ArchivedMessageSource   0 0 0   100%
slidge/db/models.py _JidMixin   1 0 0   100%
slidge/db/models.py GatewayUser   4 4 0   0%
slidge/db/models.py Avatar   0 0 0   100%
slidge/db/models.py Contact   0 0 0   100%
slidge/db/models.py ContactSent   0 0 0   100%
slidge/db/models.py Room   0 0 0   100%
slidge/db/models.py ArchivedMessage   0 0 0   100%
slidge/db/models.py _LegacyToXmppIdsBase   0 0 0   100%
slidge/db/models.py DirectMessages   0 0 0   100%
slidge/db/models.py GroupMessages   0 0 0   100%
slidge/db/models.py GroupMessagesOrigin   0 0 0   100%
slidge/db/models.py DirectThreads   0 0 0   100%
slidge/db/models.py GroupThreads   0 0 0   100%
slidge/db/models.py Attachment   0 0 0   100%
slidge/db/models.py Participant   3 0 0   100%
slidge/db/models.py Bob   0 0 0   100%
slidge/db/models.py Space   0 0 0   100%
slidge/db/models.py (no class)   204 0 0   100%
slidge/db/store.py UpdatedMixin   4 0 0   100%
slidge/db/store.py SlidgeStore   13 0 0   100%
slidge/db/store.py UserStore   9 2 0   78%
slidge/db/store.py AvatarStore   1 0 0   100%
slidge/db/store.py IdMapStore   21 0 0   100%
slidge/db/store.py ContactStore   17 3 0   82%
slidge/db/store.py MAMStore   86 4 0   95%
slidge/db/store.py RoomStore   5 2 0   60%
slidge/db/store.py ParticipantStore   6 1 0   83%
slidge/db/store.py BobStore   69 28 0   59%
slidge/db/store.py SpaceStore   18 0 0   100%
slidge/db/store.py (no class)   139 0 0   100%
slidge/group/__init__.py (no class)   5 0 0   100%
slidge/group/archive.py MessageArchive   52 3 0   94%
slidge/group/archive.py (no class)   37 0 0   100%
slidge/group/bookmarks.py LegacyBookmarks   127 15 2   88%
slidge/group/bookmarks.py (no class)   47 0 0   100%
slidge/group/participant.py LegacyParticipant   262 42 2   84%
slidge/group/participant.py (no class)   105 5 3   95%
slidge/group/room.py LegacyMUC   681 103 11   85%
slidge/group/room.py (no class)   240 6 3   98%
slidge/main.py MainConfig   7 2 0   71%
slidge/main.py SigTermInterrupt   0 0 0   100%
slidge/main.py (no class)   119 78 0   34%
slidge/migration.py (no class)   27 16 0   41%
slidge/slixfix/__init__.py (no class)   34 1 0   97%
slidge/slixfix/delivery_receipt.py DeliveryReceipt   12 0 0   100%
slidge/slixfix/delivery_receipt.py (no class)   8 0 2   100%
slidge/slixfix/roster.py YesSet   2 2 0   0%
slidge/slixfix/roster.py RosterBackend   7 1 0   86%
slidge/slixfix/roster.py (no class)   13 0 2   100%
slidge/slixfix/xep_0077/__init__.py (no class)   4 0 0   100%
slidge/slixfix/xep_0077/register.py XEP_0077   114 79 0   31%
slidge/slixfix/xep_0077/register.py (no class)   41 8 0   80%
slidge/slixfix/xep_0077/stanza.py Register   21 4 0   81%
slidge/slixfix/xep_0077/stanza.py RegisterFeature   0 0 0   100%
slidge/slixfix/xep_0077/stanza.py (no class)   23 0 0   100%
slidge/slixfix/xep_0100/__init__.py (no class)   3 0 0   100%
slidge/slixfix/xep_0100/gateway.py XEP_0100   41 20 0   51%
slidge/slixfix/xep_0100/gateway.py (no class)   22 0 0   100%
slidge/slixfix/xep_0100/stanza.py Gateway   0 0 0   100%
slidge/slixfix/xep_0100/stanza.py (no class)   7 0 0   100%
slidge/slixfix/xep_0153/__init__.py (no class)   3 0 0   100%
slidge/slixfix/xep_0153/vcard_avatar.py XEP_0153   1 0 0   100%
slidge/slixfix/xep_0153/vcard_avatar.py (no class)   10 0 0   100%
slidge/slixfix/xep_0292/__init__.py (no class)   3 0 0   100%
slidge/slixfix/xep_0292/vcard4.py VCard4Provider   1 0 0   100%
slidge/slixfix/xep_0292/vcard4.py (no class)   8 0 0   100%
slidge/util/__init__.py (no class)   3 0 0   100%
slidge/util/archive_msg.py HistoryMessage   23 1 0   96%
slidge/util/archive_msg.py (no class)   17 0 0   100%
slidge/util/conf.py Option   39 1 0   97%
slidge/util/conf.py ConfigModule   60 3 0   95%
slidge/util/conf.py (no class)   47 0 0   100%
slidge/util/jid_escaping.py EscapeMixin   2 0 0   100%
slidge/util/jid_escaping.py (no class)   8 0 0   100%
slidge/util/lock.py NamedLockMixin   16 0 0   100%
slidge/util/lock.py (no class)   10 0 0   100%
slidge/util/lottie.py (no class)   67 67 0   0%
slidge/util/test.py SlixTestPlus   10 0 0   100%
slidge/util/test.py SlidgeTest   98 3 0   97%
slidge/util/test.py SlidgeTest.Config   0 0 0   100%
slidge/util/test.py (no class)   53 3 0   94%
slidge/util/types.py MessageReference   0 0 0   100%
slidge/util/types.py LegacyAttachment   24 7 0   71%
slidge/util/types.py MucType   0 0 0   100%
slidge/util/types.py LinkPreview   1 0 0   100%
slidge/util/types.py Mention   0 0 0   100%
slidge/util/types.py Hat   0 0 0   100%
slidge/util/types.py UserPreferences   0 0 0   100%
slidge/util/types.py MamMetadata   0 0 0   100%
slidge/util/types.py HoleBound   0 0 0   100%
slidge/util/types.py CachedPresence   0 0 0   100%
slidge/util/types.py Avatar   0 0 0   100%
slidge/util/types.py SpaceMetadata   0 0 0   100%
slidge/util/types.py Reply   3 0 0   100%
slidge/util/types.py _ReplyProtocol   0 0 0   100%
slidge/util/types.py MUCReplyProtocol   0 0 0   100%
slidge/util/types.py ContactReplyProtocol   0 0 0   100%
slidge/util/types.py XMPPAttachment   2 0 0   100%
slidge/util/types.py XMPPMessage   0 0 0   100%
slidge/util/types.py XMPPMessageProtocol   0 0 0   100%
slidge/util/types.py ContactMessageProtocol   0 0 0   100%
slidge/util/types.py MUCMessageProtocol   0 0 0   100%
slidge/util/types.py AttachmentMessageProtocol   0 0 0   100%
slidge/util/types.py XMPPTextMessageProtocol   0 0 0   100%
slidge/util/types.py ContactAttachmentMessage   0 0 0   100%
slidge/util/types.py MUCAttachmentMessage   0 0 0   100%
slidge/util/types.py ContactTextMessage   0 0 0   100%
slidge/util/types.py MUCTextMessage   0 0 0   100%
slidge/util/types.py Sticker   0 0 0   100%
slidge/util/types.py StickerProtocol   0 0 0   100%
slidge/util/types.py ContactSticker   0 0 0   100%
slidge/util/types.py MUCSticker   0 0 0   100%
slidge/util/types.py (no class)   215 0 6   100%
slidge/util/util.py SlidgeLogger   1 1 0   0%
slidge/util/util.py HasLogger   0 0 0   100%
slidge/util/util.py (no class)   157 35 0   78%
Total     9265 1621 107   83%

No items found using the specified filter.