Coverage report: 81%

Files Functions Classes

coverage.py v7.13.5, created at 2026-04-06 05:07 +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)   3 0 0   100%
slidge / command / adhoc.py AdhocProvider   156 26 0   83%
slidge / command / adhoc.py (no class)   40 1 3   98%
slidge / command / admin.py AdminCommand   0 0 0   100%
slidge / command / admin.py ListUsers   9 9 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 _CommandMixin   0 0 0   100%
slidge / command / base.py Command   23 2 0   91%
slidge / command / base.py _RecipientCommand   0 0 1   100%
slidge / command / base.py ContactCommand   2 0 0   100%
slidge / command / base.py MUCCommand   2 0 0   100%
slidge / command / base.py (no class)   135 0 3   100%
slidge / command / categories.py CommandCategory   0 0 0   100%
slidge / command / categories.py (no class)   8 0 0   100%
slidge / command / chat_command.py ChatCommandProvider   190 66 0   65%
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   48 48 0   0%
slidge / command / register.py (no class)   36 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 Login   14 14 0   0%
slidge / command / user.py CreateGroup   8 8 0   0%
slidge / command / user.py Preferences   20 20 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)   92 0 2   100%
slidge / contact / __init__.py (no class)   3 0 0   100%
slidge / contact / contact.py LegacyContact   195 39 0   80%
slidge / contact / contact.py (no class)   93 1 3   99%
slidge / contact / roster.py ContactIsUser   0 0 0   100%
slidge / contact / roster.py LegacyRoster   92 31 0   66%
slidge / contact / roster.py (no class)   38 0 2   100%
slidge / core / __init__.py (no class)   2 0 0   100%
slidge / core / config.py _Categories   0 0 0   100%
slidge / core / config.py (no class)   110 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   31 4 0   87%
slidge / core / dispatcher / disco.py (no class)   16 0 3   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   23 11 0   52%
slidge / core / dispatcher / message / chat_state.py (no class)   17 0 2   100%
slidge / core / dispatcher / message / marker.py MarkerMixin   30 4 0   87%
slidge / core / dispatcher / message / marker.py (no class)   15 0 2   100%
slidge / core / dispatcher / message / message.py MessageContentMixin   203 45 0   78%
slidge / core / dispatcher / message / message.py (no class)   49 3 2   94%
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   41 4 0   90%
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   54 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   104 24 0   77%
slidge / core / dispatcher / presence.py (no class)   30 0 2   100%
slidge / core / dispatcher / registration.py RegistrationMixin   41 17 0   59%
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)   22 0 2   100%
slidge / core / dispatcher / util.py Ignore   0 0 0   100%
slidge / core / dispatcher / util.py DispatcherMixin   56 10 0   82%
slidge / core / dispatcher / util.py (no class)   63 1 2   98%
slidge / core / dispatcher / vcard.py VCardMixin   81 11 0   86%
slidge / core / dispatcher / vcard.py (no class)   20 0 2   100%
slidge / core / gateway.py BaseGateway   330 165 3   50%
slidge / core / gateway.py (no class)   130 0 2   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   296 55 0   81%
slidge / core / mixins / attachment.py (no class)   66 1 0   98%
slidge / core / mixins / avatar.py AvatarMixin   75 12 1   84%
slidge / core / mixins / avatar.py (no class)   33 0 2   100%
slidge / core / mixins / base.py Base   2 2 0   0%
slidge / core / mixins / base.py BaseSender   0 0 1   100%
slidge / core / mixins / base.py (no class)   16 0 2   100%
slidge / core / mixins / db.py DBMixin   10 0 0   100%
slidge / core / mixins / db.py UpdateInfoMixin   49 27 0   45%
slidge / core / mixins / db.py (no class)   26 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)   38 0 2   100%
slidge / core / mixins / message.py ChatStateMixin   13 11 0   15%
slidge / core / mixins / message.py MarkerMixin   35 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 2   100%
slidge / core / mixins / message_maker.py MessageMaker   104 15 0   86%
slidge / core / mixins / message_maker.py (no class)   35 0 2   100%
slidge / core / mixins / message_text.py TextMessageMixin   62 9 0   85%
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   89 16 0   82%
slidge / core / mixins / presence.py (no class)   53 8 2   85%
slidge / core / mixins / recipient.py ReactionRecipientMixin   12 0 0   100%
slidge / core / mixins / recipient.py ThreadRecipientMixin   1 0 0   100%
slidge / core / mixins / recipient.py (no class)   10 0 2   100%
slidge / core / pubsub.py PepAvatar   13 0 0   100%
slidge / core / pubsub.py PubSubComponent   143 38 0   73%
slidge / core / pubsub.py (no class)   54 0 2   100%
slidge / core / session.py CachedPresence   0 0 0   100%
slidge / core / session.py BaseSession   142 39 21   73%
slidge / core / session.py (no class)   120 0 4   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)   22 22 0   0%
slidge / db / avatar.py CachedAvatar   10 4 0   60%
slidge / db / avatar.py NotModified   0 0 0   100%
slidge / db / avatar.py AvatarCache   101 12 0   88%
slidge / db / avatar.py (no class)   58 0 0   100%
slidge / db / meta.py JIDType   6 1 0   83%
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 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 (no class)   179 0 0   100%
slidge / db / store.py UpdatedMixin   4 0 0   100%
slidge / db / store.py SlidgeStore   12 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   88 4 0   95%
slidge / db / store.py RoomStore   5 1 0   80%
slidge / db / store.py ParticipantStore   5 1 0   80%
slidge / db / store.py BobStore   63 27 0   57%
slidge / db / store.py (no class)   120 0 0   100%
slidge / group / __init__.py (no class)   5 0 0   100%
slidge / group / archive.py MessageArchive   52 2 0   96%
slidge / group / archive.py (no class)   40 0 2   100%
slidge / group / bookmarks.py LegacyBookmarks   74 12 1   84%
slidge / group / bookmarks.py (no class)   35 0 2   100%
slidge / group / participant.py LegacyParticipant   266 37 0   86%
slidge / group / participant.py (no class)   104 5 0   95%
slidge / group / room.py LegacyMUC   576 89 9   85%
slidge / group / room.py (no class)   227 6 3   97%
slidge / main.py MainConfig   7 2 0   71%
slidge / main.py SigTermInterrupt   0 0 0   100%
slidge / main.py (no class)   107 70 0   35%
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)   42 8 0   81%
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)   20 1 0   95%
slidge / util / conf.py Option   39 1 0   97%
slidge / util / conf.py ConfigModule   61 3 0   95%
slidge / util / conf.py (no class)   47 0 0   100%
slidge / util / jid_escaping.py (no class)   5 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)   69 69 0   0%
slidge / util / test.py SlixTestPlus   60 13 0   78%
slidge / util / test.py SlidgeTest   94 2 0   98%
slidge / util / test.py SlidgeTest.Config   0 0 0   100%
slidge / util / test.py (no class)   80 5 0   94%
slidge / util / types.py MessageReference   0 0 0   100%
slidge / util / types.py LegacyAttachment   22 7 0   68%
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 Sticker   0 0 0   100%
slidge / util / types.py Avatar   0 0 0   100%
slidge / util / types.py (no class)   109 0 10   100%
slidge / util / util.py SubclassableOnce   21 1 0   95%
slidge / util / util.py SlidgeLogger   1 1 0   0%
slidge / util / util.py (no class)   154 36 0   77%
Total     8483 1571 132   81%

No items found using the specified filter.