Coverage report: 81%

Files Functions Classes

coverage.py v7.13.0, created at 2026-01-06 15:18 +0000

File class   statements missing excluded   coverage
slidge / __init__.py (no class)   25 3 0   88%
slidge / __main__.py (no class)   2 2 0   0%
slidge / command / __init__.py (no class)   3 0 0   100%
slidge / command / adhoc.py AdhocProvider   125 19 0   85%
slidge / command / adhoc.py (no class)   35 1 3   97%
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 0   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 Form   12 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 12 0   76%
slidge / command / base.py Command   23 2 0   91%
slidge / command / base.py (no class)   108 0 4   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   150 78 0   48%
slidge / command / chat_command.py (no class)   33 1 2   97%
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   194 38 0   80%
slidge / contact / contact.py (no class)   87 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)   111 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   25 2 0   92%
slidge / core / dispatcher / disco.py (no class)   14 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   23 11 0   52%
slidge / core / dispatcher / message / chat_state.py (no class)   16 0 0   100%
slidge / core / dispatcher / message / marker.py MarkerMixin   30 4 0   87%
slidge / core / dispatcher / message / marker.py (no class)   15 0 0   100%
slidge / core / dispatcher / message / message.py MessageContentMixin   201 45 0   78%
slidge / core / dispatcher / message / message.py (no class)   35 1 0   97%
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)   13 0 0   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)   20 0 0   100%
slidge / core / dispatcher / muc / owner.py MucOwnerMixin   39 1 0   97%
slidge / core / dispatcher / muc / owner.py (no class)   12 0 0   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   103 23 0   78%
slidge / core / dispatcher / presence.py (no class)   29 0 0   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)   60 1 3   98%
slidge / core / dispatcher / vcard.py VCardMixin   81 11 0   86%
slidge / core / dispatcher / vcard.py (no class)   20 0 0   100%
slidge / core / gateway.py BaseGateway   324 161 3   50%
slidge / core / gateway.py (no class)   124 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)   65 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 MetaBase   0 0 0   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)   18 0 3   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)   25 0 2   100%
slidge / core / mixins / disco.py BaseDiscoMixin   17 3 0   82%
slidge / core / mixins / disco.py ChatterDiscoMixin   28 0 0   100%
slidge / core / mixins / disco.py ContactAccountDiscoMixin   9 0 0   100%
slidge / core / mixins / disco.py (no class)   33 0 0   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   82 9 0   89%
slidge / core / mixins / message_maker.py (no class)   26 0 2   100%
slidge / core / mixins / message_text.py TextMessageMixin   60 8 0   87%
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)   52 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   141 36 0   74%
slidge / core / pubsub.py (no class)   53 0 3   100%
slidge / core / session.py CachedPresence   0 0 0   100%
slidge / core / session.py BaseSession   142 40 21   72%
slidge / core / session.py (no class)   116 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   96 12 0   88%
slidge / db / avatar.py (no class)   59 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)   119 0 0   100%
slidge / group / __init__.py (no class)   5 0 0   100%
slidge / group / archive.py MessageArchive   51 2 0   96%
slidge / group / archive.py (no class)   39 0 2   100%
slidge / group / bookmarks.py LegacyBookmarks   72 12 1   83%
slidge / group / bookmarks.py (no class)   37 0 2   100%
slidge / group / participant.py LegacyParticipant   265 36 0   86%
slidge / group / participant.py (no class)   100 5 2   95%
slidge / group / room.py LegacyMUC   568 95 9   83%
slidge / group / room.py (no class)   219 3 2   99%
slidge / main.py MainConfig   7 2 0   71%
slidge / main.py SigTermInterrupt   0 0 0   100%
slidge / main.py (no class)   108 70 0   35%
slidge / migration.py (no class)   27 16 0   41%
slidge / slixfix / __init__.py (no class)   60 7 0   88%
slidge / slixfix / delivery_receipt.py DeliveryReceipt   12 0 0   100%
slidge / slixfix / delivery_receipt.py (no class)   8 0 2   100%
slidge / slixfix / link_preview / __init__.py (no class)   3 0 0   100%
slidge / slixfix / link_preview / link_preview.py LinkPreview   1 0 0   100%
slidge / slixfix / link_preview / link_preview.py (no class)   8 0 0   100%
slidge / slixfix / link_preview / stanza.py LinkPreview   19 1 0   95%
slidge / slixfix / link_preview / stanza.py OpenGraphMixin   0 0 0   100%
slidge / slixfix / link_preview / stanza.py Title   0 0 0   100%
slidge / slixfix / link_preview / stanza.py Description   0 0 0   100%
slidge / slixfix / link_preview / stanza.py Url   0 0 0   100%
slidge / slixfix / link_preview / stanza.py Image   0 0 0   100%
slidge / slixfix / link_preview / stanza.py Type_   0 0 0   100%
slidge / slixfix / link_preview / stanza.py SiteName   0 0 0   100%
slidge / slixfix / link_preview / stanza.py (no class)   42 0 0   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 22 0   46%
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)   2 0 0   100%
slidge / util / archive_msg.py HistoryMessage   23 1 0   96%
slidge / util / archive_msg.py (no class)   21 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)   46 0 0   100%
slidge / util / jid_escaping.py (no class)   19 6 0   68%
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   73 4 0   95%
slidge / util / test.py SlidgeTest.Config   0 0 0   100%
slidge / util / test.py (no class)   75 5 0   93%
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   0 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)   97 0 6   100%
slidge / util / util.py SubclassableOnce   20 0 0   100%
slidge / util / util.py ABCSubclassableOnceAtMost   0 0 0   100%
slidge / util / util.py SlidgeLogger   1 1 0   0%
slidge / util / util.py (no class)   149 36 0   76%
Total     8299 1576 111   81%

No items found using the specified filter.