Coverage report: 81%

Files Functions Classes

coverage.py v7.8.0, created at 2025-05-04 08:17 +0000

File function statements missing excluded coverage
slidge/__init__.py entrypoint 1 1 0 0%
slidge/__init__.py formatwarning 1 0 0 100%
slidge/__init__.py (no function) 24 2 0 92%
slidge/__main__.py (no function) 2 2 0 0%
slidge/command/__init__.py (no function) 3 0 0 100%
slidge/command/adhoc.py AdhocProvider.__init__ 4 0 0 100%
slidge/command/adhoc.py AdhocProvider.__wrap_initial_handler 4 0 0 100%
slidge/command/adhoc.py AdhocProvider.__handle_category_list 14 1 0 93%
slidge/command/adhoc.py AdhocProvider.__handle_category_choice 3 0 0 100%
slidge/command/adhoc.py AdhocProvider.__handle_result 23 1 0 96%
slidge/command/adhoc.py AdhocProvider.__wrap_handler 9 3 0 67%
slidge/command/adhoc.py AdhocProvider.__wrap_form_handler 3 0 0 100%
slidge/command/adhoc.py AdhocProvider.__wrap_confirmation 6 1 0 83%
slidge/command/adhoc.py AdhocProvider.register 17 3 0 82%
slidge/command/adhoc.py AdhocProvider.get_items 28 1 0 96%
slidge/command/adhoc.py strip_leading_emoji_if_needed 3 1 0 67%
slidge/command/adhoc.py (no function) 29 0 3 100%
slidge/command/admin.py ListUsers.run 9 9 0 0%
slidge/command/admin.py SlidgeInfo.run 27 27 0 0%
slidge/command/admin.py DeleteUser.run 1 1 0 0%
slidge/command/admin.py DeleteUser.delete 6 6 0 0%
slidge/command/admin.py DeleteUser.finish 5 5 0 0%
slidge/command/admin.py ChangeLoglevel.run 1 1 0 0%
slidge/command/admin.py ChangeLoglevel.finish 1 1 0 0%
slidge/command/admin.py Exec.__init__ 1 1 0 0%
slidge/command/admin.py Exec.run 9 9 0 0%
slidge/command/admin.py (no function) 54 0 0 100%
slidge/command/base.py TableResult.get_xml 8 0 0 100%
slidge/command/base.py Confirmation.get_form 5 0 0 100%
slidge/command/base.py Form.get_values 5 0 0 100%
slidge/command/base.py Form.get_xml 7 0 0 100%
slidge/command/base.py FormField.__post_init__ 2 0 0 100%
slidge/command/base.py FormField.__acceptable_options 3 1 0 67%
slidge/command/base.py FormField.validate 24 6 0 75%
slidge/command/base.py FormField.__validate_list_multi 8 4 0 50%
slidge/command/base.py FormField.get_xml 12 1 0 92%
slidge/command/base.py Command.__init__ 1 0 0 100%
slidge/command/base.py Command.__init_subclass__ 1 0 0 100%
slidge/command/base.py Command.run 1 1 0 0%
slidge/command/base.py Command._get_session 1 0 0 100%
slidge/command/base.py Command.__can_use_command 2 0 0 100%
slidge/command/base.py Command.raise_if_not_authorized 17 1 0 94%
slidge/command/base.py is_admin 1 0 0 100%
slidge/command/base.py (no function) 107 0 4 100%
slidge/command/categories.py (no function) 8 0 0 100%
slidge/command/chat_command.py ChatCommandProvider.__init__ 5 0 0 100%
slidge/command/chat_command.py ChatCommandProvider.register 4 1 0 75%
slidge/command/chat_command.py ChatCommandProvider.input 1 0 0 100%
slidge/command/chat_command.py ChatCommandProvider.input 0 0 0 100%
slidge/command/chat_command.py ChatCommandProvider.input 0 0 0 100%
slidge/command/chat_command.py ChatCommandProvider.input 14 4 0 71%
slidge/command/chat_command.py ChatCommandProvider._handle_message 27 6 0 78%
slidge/command/chat_command.py ChatCommandProvider.__make_uri 1 1 0 0%
slidge/command/chat_command.py ChatCommandProvider._handle_result 60 45 0 25%
slidge/command/chat_command.py ChatCommandProvider.__wrap_handler 11 8 0 27%
slidge/command/chat_command.py ChatCommandProvider._handle_help 9 5 0 44%
slidge/command/chat_command.py ChatCommandProvider._help 9 2 0 78%
slidge/command/chat_command.py ChatCommandProvider._not_found 3 0 0 100%
slidge/command/chat_command.py percent_encode 1 1 0 0%
slidge/command/chat_command.py (no function) 30 0 2 100%
slidge/command/register.py Register._finalize 4 4 0 0%
slidge/command/register.py Register.run 2 2 0 0%
slidge/command/register.py Register.register 26 26 0 0%
slidge/command/register.py Register.two_fa 5 5 0 0%
slidge/command/register.py Register.qr 7 7 0 0%
slidge/command/register.py Register.preferences 1 1 0 0%
slidge/command/register.py (no function) 35 0 0 100%
slidge/command/user.py Search.run 4 4 0 0%
slidge/command/user.py Search.search 5 5 0 0%
slidge/command/user.py SyncContacts.run 1 1 0 0%
slidge/command/user.py SyncContacts.sync 25 25 0 0%
slidge/command/user.py ListContacts.run 3 3 0 0%
slidge/command/user.py ListGroups.run 4 4 0 0%
slidge/command/user.py Login.run 14 14 0 0%
slidge/command/user.py CreateGroup.run 3 3 0 0%
slidge/command/user.py CreateGroup.finish 4 4 0 0%
slidge/command/user.py Preferences.run 6 6 0 0%
slidge/command/user.py Preferences.finish 8 8 0 0%
slidge/command/user.py Unregister.run 1 1 0 0%
slidge/command/user.py Unregister.unregister 3 3 0 0%
slidge/command/user.py LeaveGroup.run 4 4 0 0%
slidge/command/user.py LeaveGroup.confirm 2 2 0 0%
slidge/command/user.py LeaveGroup.finish 2 2 0 0%
slidge/command/user.py (no function) 84 0 2 100%
slidge/contact/__init__.py (no function) 3 0 0 100%
slidge/contact/contact.py LegacyContact.__init__ 5 0 0 100%
slidge/contact/contact.py LegacyContact.jid 3 0 0 100%
slidge/contact/contact.py LegacyContact.legacy_id 1 0 0 100%
slidge/contact/contact.py LegacyContact.get_vcard 5 0 0 100%
slidge/contact/contact.py LegacyContact.is_friend 1 0 0 100%
slidge/contact/contact.py LegacyContact.is_friend 4 0 0 100%
slidge/contact/contact.py LegacyContact.added_to_roster 1 0 0 100%
slidge/contact/contact.py LegacyContact.added_to_roster 4 1 0 75%
slidge/contact/contact.py LegacyContact.participants 8 0 0 100%
slidge/contact/contact.py LegacyContact.user_jid 1 0 0 100%
slidge/contact/contact.py LegacyContact.DISCO_TYPE 1 0 0 100%
slidge/contact/contact.py LegacyContact.DISCO_TYPE 1 1 0 0%
slidge/contact/contact.py LegacyContact.client_type 1 0 0 100%
slidge/contact/contact.py LegacyContact.client_type 4 4 0 0%
slidge/contact/contact.py LegacyContact._set_logger 1 0 0 100%
slidge/contact/contact.py LegacyContact.__repr__ 1 0 0 100%
slidge/contact/contact.py LegacyContact.__get_subscription_string 3 1 0 67%
slidge/contact/contact.py LegacyContact.__propagate_to_participants 17 2 0 88%
slidge/contact/contact.py LegacyContact._send 27 2 0 93%
slidge/contact/contact.py LegacyContact.get_msg_xmpp_id_up_to 5 0 0 100%
slidge/contact/contact.py LegacyContact.name 1 0 0 100%
slidge/contact/contact.py LegacyContact.name 9 1 0 89%
slidge/contact/contact.py LegacyContact._post_avatar_update 5 0 0 100%
slidge/contact/contact.py LegacyContact.set_vcard 32 13 0 59%
slidge/contact/contact.py LegacyContact.get_roster_item 4 0 0 100%
slidge/contact/contact.py LegacyContact.add_to_roster 16 12 0 25%
slidge/contact/contact.py LegacyContact.__broadcast_pubsub_items 10 3 0 70%
slidge/contact/contact.py LegacyContact.send_friend_request 2 0 0 100%
slidge/contact/contact.py LegacyContact.accept_friend_request 8 0 0 100%
slidge/contact/contact.py LegacyContact.reject_friend_request 4 0 0 100%
slidge/contact/contact.py LegacyContact.on_friend_request 1 1 0 0%
slidge/contact/contact.py LegacyContact.on_friend_delete 1 1 0 0%
slidge/contact/contact.py LegacyContact.on_friend_accept 1 1 0 0%
slidge/contact/contact.py LegacyContact.unsubscribe 2 0 0 100%
slidge/contact/contact.py LegacyContact.update_info 1 0 0 100%
slidge/contact/contact.py LegacyContact.fetch_vcard 1 0 0 100%
slidge/contact/contact.py LegacyContact._make_presence 7 0 0 100%
slidge/contact/contact.py is_markable 3 1 0 67%
slidge/contact/contact.py (no function) 84 0 3 100%
slidge/contact/roster.py LegacyRoster.__init__ 6 0 0 100%
slidge/contact/roster.py LegacyRoster.user 1 0 0 100%
slidge/contact/roster.py LegacyRoster.orm 1 0 0 100%
slidge/contact/roster.py LegacyRoster.from_store 1 0 0 100%
slidge/contact/roster.py LegacyRoster.__repr__ 1 1 0 0%
slidge/contact/roster.py LegacyRoster.__iter__ 4 0 0 100%
slidge/contact/roster.py LegacyRoster.known_contacts 3 3 0 0%
slidge/contact/roster.py LegacyRoster.by_jid 12 2 0 83%
slidge/contact/roster.py LegacyRoster.__update_if_needed 8 1 0 88%
slidge/contact/roster.py LegacyRoster.by_jid_only_if_exists 5 0 0 100%
slidge/contact/roster.py LegacyRoster.by_legacy_id 15 6 0 60%
slidge/contact/roster.py LegacyRoster.legacy_id_to_jid_username 1 0 0 100%
slidge/contact/roster.py LegacyRoster.jid_username_to_legacy_id 1 0 0 100%
slidge/contact/roster.py LegacyRoster._fill 24 15 0 38%
slidge/contact/roster.py LegacyRoster.fill 1 0 0 100%
slidge/contact/roster.py (no function) 38 0 2 100%
slidge/core/__init__.py (no function) 2 0 0 100%
slidge/core/config.py _TimedeltaSeconds.__new__ 1 0 0 100%
slidge/core/config.py (no function) 72 0 0 100%
slidge/core/dispatcher/__init__.py (no function) 2 0 0 100%
slidge/core/dispatcher/caps.py CapsMixin.__init__ 3 0 0 100%
slidge/core/dispatcher/caps.py CapsMixin._filter_add_caps 33 4 0 88%
slidge/core/dispatcher/caps.py (no function) 11 0 2 100%
slidge/core/dispatcher/disco.py DiscoMixin.__init__ 3 0 0 100%
slidge/core/dispatcher/disco.py DiscoMixin.get_info 11 1 0 91%
slidge/core/dispatcher/disco.py DiscoMixin.get_items 11 1 0 91%
slidge/core/dispatcher/disco.py (no function) 14 0 2 100%
slidge/core/dispatcher/message/__init__.py (no function) 6 0 0 100%
slidge/core/dispatcher/message/chat_state.py ChatStateMixin.__init__ 6 0 0 100%
slidge/core/dispatcher/message/chat_state.py ChatStateMixin.on_chatstate_active 5 2 0 60%
slidge/core/dispatcher/message/chat_state.py ChatStateMixin.on_chatstate_inactive 3 3 0 0%
slidge/core/dispatcher/message/chat_state.py ChatStateMixin.on_chatstate_composing 3 0 0 100%
slidge/core/dispatcher/message/chat_state.py ChatStateMixin.on_chatstate_paused 3 3 0 0%
slidge/core/dispatcher/message/chat_state.py ChatStateMixin.on_chatstate_gone 3 3 0 0%
slidge/core/dispatcher/message/chat_state.py (no function) 16 0 0 100%
slidge/core/dispatcher/message/marker.py MarkerMixin.__init__ 3 0 0 100%
slidge/core/dispatcher/message/marker.py MarkerMixin.on_marker_displayed 15 4 0 73%
slidge/core/dispatcher/message/marker.py MarkerMixin.on_message_displayed_synchronization_publish 13 4 0 69%
slidge/core/dispatcher/message/marker.py (no function) 12 0 0 100%
slidge/core/dispatcher/message/message.py MessageContentMixin.__init__ 6 0 0 100%
slidge/core/dispatcher/message/message.py MessageContentMixin.on_groupchat_message 1 0 0 100%
slidge/core/dispatcher/message/message.py MessageContentMixin.on_legacy_message 59 8 0 86%
slidge/core/dispatcher/message/message.py MessageContentMixin.on_message_correction 39 13 0 67%
slidge/core/dispatcher/message/message.py MessageContentMixin.on_message_retract 11 10 0 9%
slidge/core/dispatcher/message/message.py MessageContentMixin.on_reactions 41 15 0 63%
slidge/core/dispatcher/message/message.py MessageContentMixin.__ack 2 0 0 100%
slidge/core/dispatcher/message/message.py MessageContentMixin.__get_reply 30 14 0 53%
slidge/core/dispatcher/message/message.py MessageContentMixin.__send_url 5 2 0 60%
slidge/core/dispatcher/message/message.py MessageContentMixin.__send_bob 8 0 0 100%
slidge/core/dispatcher/message/message.py (no function) 30 0 0 100%
slidge/core/dispatcher/muc/__init__.py (no function) 8 0 0 100%
slidge/core/dispatcher/muc/admin.py MucAdminMixin.__init__ 4 0 0 100%
slidge/core/dispatcher/muc/admin.py MucAdminMixin.on_user_moderation 11 2 0 82%
slidge/core/dispatcher/muc/admin.py MucAdminMixin.on_user_set_affiliation 13 0 0 100%
slidge/core/dispatcher/muc/admin.py MucAdminMixin.on_muc_admin_query_get 11 1 0 91%
slidge/core/dispatcher/muc/admin.py (no function) 13 0 0 100%
slidge/core/dispatcher/muc/mam.py MamMixin.__init__ 5 0 0 100%
slidge/core/dispatcher/muc/mam.py MamMixin.__mam_cleanup 7 4 0 43%
slidge/core/dispatcher/muc/mam.py MamMixin.__handle_mam 2 0 0 100%
slidge/core/dispatcher/muc/mam.py MamMixin.__handle_mam_get_form 20 0 0 100%
slidge/core/dispatcher/muc/mam.py MamMixin.__handle_mam_metadata 2 0 0 100%
slidge/core/dispatcher/muc/mam.py (no function) 16 0 2 100%
slidge/core/dispatcher/muc/misc.py MucMiscMixin.__init__ 6 0 0 100%
slidge/core/dispatcher/muc/misc.py MucMiscMixin.__on_group_chat_error 15 2 0 87%
slidge/core/dispatcher/muc/misc.py MucMiscMixin.on_ibr_remove 9 0 0 100%
slidge/core/dispatcher/muc/misc.py MucMiscMixin.on_groupchat_join 4 1 0 75%
slidge/core/dispatcher/muc/misc.py MucMiscMixin.on_groupchat_direct_invite 10 1 0 90%
slidge/core/dispatcher/muc/misc.py MucMiscMixin.on_groupchat_subject 4 1 0 75%
slidge/core/dispatcher/muc/misc.py (no function) 18 0 0 100%
slidge/core/dispatcher/muc/owner.py MucOwnerMixin.__init__ 3 0 0 100%
slidge/core/dispatcher/muc/owner.py MucOwnerMixin.on_muc_owner_query 13 0 0 100%
slidge/core/dispatcher/muc/owner.py MucOwnerMixin.on_muc_owner_set 23 1 0 96%
slidge/core/dispatcher/muc/owner.py (no function) 12 0 0 100%
slidge/core/dispatcher/muc/ping.py PingMixin.__init__ 4 0 0 100%
slidge/core/dispatcher/muc/ping.py PingMixin.__handle_ping 17 10 0 41%
slidge/core/dispatcher/muc/ping.py PingMixin.__handle_muc_ping 3 0 0 100%
slidge/core/dispatcher/muc/ping.py (no function) 12 0 2 100%
slidge/core/dispatcher/presence.py _IsDirectedAtComponent.__init__ 1 0 0 100%
slidge/core/dispatcher/presence.py PresenceHandlerMixin.__init__ 7 0 0 100%
slidge/core/dispatcher/presence.py PresenceHandlerMixin.__get_contact 6 0 0 100%
slidge/core/dispatcher/presence.py PresenceHandlerMixin._handle_subscribe 8 3 0 62%
slidge/core/dispatcher/presence.py PresenceHandlerMixin._handle_unsubscribe 9 9 0 0%
slidge/core/dispatcher/presence.py PresenceHandlerMixin._handle_subscribed 5 2 0 60%
slidge/core/dispatcher/presence.py PresenceHandlerMixin._handle_unsubscribed 7 2 0 71%
slidge/core/dispatcher/presence.py PresenceHandlerMixin._handle_probe 11 0 0 100%
slidge/core/dispatcher/presence.py PresenceHandlerMixin.on_presence 45 7 0 84%
slidge/core/dispatcher/presence.py (no function) 26 0 0 100%
slidge/core/dispatcher/registration.py RegistrationMixin.__init__ 8 0 0 100%
slidge/core/dispatcher/registration.py RegistrationMixin.get_user 4 0 0 100%
slidge/core/dispatcher/registration.py RegistrationMixin._user_get 3 0 0 100%
slidge/core/dispatcher/registration.py RegistrationMixin._user_validate 12 8 0 33%
slidge/core/dispatcher/registration.py RegistrationMixin._user_modify 8 8 0 0%
slidge/core/dispatcher/registration.py RegistrationMixin._on_user_register 5 1 0 80%
slidge/core/dispatcher/registration.py RegistrationMixin._on_user_unregister 1 0 0 100%
slidge/core/dispatcher/registration.py (no function) 18 0 2 100%
slidge/core/dispatcher/search.py SearchMixin.__init__ 5 0 0 100%
slidge/core/dispatcher/search.py SearchMixin.search_get_form 12 12 0 0%
slidge/core/dispatcher/search.py SearchMixin._search_query 11 11 0 0%
slidge/core/dispatcher/search.py SearchMixin._handle_gateway_iq 19 2 0 89%
slidge/core/dispatcher/search.py (no function) 12 0 2 100%
slidge/core/dispatcher/session_dispatcher.py SessionDispatcher.__init__ 2 0 0 100%
slidge/core/dispatcher/session_dispatcher.py SessionDispatcher.on_avatar_metadata_publish 6 2 0 67%
slidge/core/dispatcher/session_dispatcher.py SessionDispatcher.on_avatar_metadata_info 32 7 0 78%
slidge/core/dispatcher/session_dispatcher.py (no function) 22 0 2 100%
slidge/core/dispatcher/util.py DispatcherMixin.__init__ 1 0 0 100%
slidge/core/dispatcher/util.py DispatcherMixin._get_session 11 4 0 64%
slidge/core/dispatcher/util.py DispatcherMixin._get_session_from_jid 8 0 0 100%
slidge/core/dispatcher/util.py DispatcherMixin.get_muc_from_stanza 6 0 0 100%
slidge/core/dispatcher/util.py DispatcherMixin._xmpp_msg_id_to_legacy 11 5 0 55%
slidge/core/dispatcher/util.py DispatcherMixin._get_session_recipient_thread 4 0 0 100%
slidge/core/dispatcher/util.py DispatcherMixin._xmpp_to_legacy_thread 15 1 0 93%
slidge/core/dispatcher/util.py _ignore 8 0 0 100%
slidge/core/dispatcher/util.py get_recipient 9 0 0 100%
slidge/core/dispatcher/util.py exceptions_to_xmpp_errors 2 0 0 100%
slidge/core/dispatcher/util.py exceptions_to_xmpp_errors.wrapped 12 0 0 100%
slidge/core/dispatcher/util.py (no function) 26 0 3 100%
slidge/core/dispatcher/vcard.py VCardMixin.__init__ 5 0 0 100%
slidge/core/dispatcher/vcard.py VCardMixin.on_get_vcard 8 0 0 100%
slidge/core/dispatcher/vcard.py VCardMixin.__vcard_temp_handler 4 0 0 100%
slidge/core/dispatcher/vcard.py VCardMixin.__fetch_user_avatar 9 1 0 89%
slidge/core/dispatcher/vcard.py VCardMixin.__handle_get_vcard_temp 36 3 0 92%
slidge/core/dispatcher/vcard.py VCardMixin.__handle_set_vcard_temp 19 7 0 63%
slidge/core/dispatcher/vcard.py (no function) 20 0 0 100%
slidge/core/gateway.py BaseGateway.__init__ 39 2 0 95%
slidge/core/gateway.py BaseGateway.__setup_legacy_module_subclasses 18 0 0 100%
slidge/core/gateway.py BaseGateway.kill_session 1 0 0 100%
slidge/core/gateway.py BaseGateway.__set_http 4 1 0 75%
slidge/core/gateway.py BaseGateway.__register_commands 12 1 0 92%
slidge/core/gateway.py BaseGateway.__exception_handler 10 6 0 40%
slidge/core/gateway.py BaseGateway.__register_slixmpp_events 8 0 0 100%
slidge/core/gateway.py BaseGateway.__register_slixmpp_api 4 0 0 100%
slidge/core/gateway.py BaseGateway.__register_slixmpp_api.with_session 2 0 0 100%
slidge/core/gateway.py BaseGateway.__register_slixmpp_api.with_session.wrapped 5 0 0 100%
slidge/core/gateway.py BaseGateway.jid 1 0 0 100%
slidge/core/gateway.py BaseGateway.__on_session_start 29 29 0 0%
slidge/core/gateway.py BaseGateway.__add_component_to_mds_whitelist 24 12 0 50%
slidge/core/gateway.py BaseGateway.login_wrap 33 12 0 64%
slidge/core/gateway.py BaseGateway.fetch_user_avatar 18 14 0 22%
slidge/core/gateway.py BaseGateway._send 5 0 0 100%
slidge/core/gateway.py BaseGateway.raise_if_not_allowed_jid 2 0 0 100%
slidge/core/gateway.py BaseGateway.send_raw 12 2 0 83%
slidge/core/gateway.py BaseGateway.get_session_from_jid 4 0 0 100%
slidge/core/gateway.py BaseGateway.exception 14 14 0 0%
slidge/core/gateway.py BaseGateway.re_login 2 2 0 0%
slidge/core/gateway.py BaseGateway.re_login.w 6 6 0 0%
slidge/core/gateway.py BaseGateway.make_registration_form 24 23 0 4%
slidge/core/gateway.py BaseGateway.user_prevalidate 4 4 0 0%
slidge/core/gateway.py BaseGateway.validate 0 0 1 100%
slidge/core/gateway.py BaseGateway.validate_two_factor_code 0 0 1 100%
slidge/core/gateway.py BaseGateway.get_qr_text 0 0 1 100%
slidge/core/gateway.py BaseGateway.confirm_qr 4 4 0 0%
slidge/core/gateway.py BaseGateway.unregister_user 3 3 0 0%
slidge/core/gateway.py BaseGateway.unregister 5 5 0 0%
slidge/core/gateway.py BaseGateway.input 1 1 0 0%
slidge/core/gateway.py BaseGateway.send_qr 4 4 0 0%
slidge/core/gateway.py BaseGateway.shutdown 7 7 0 0%
slidge/core/gateway.py (no function) 118 0 2 100%
slidge/core/mixins/__init__.py (no function) 9 0 0 100%
slidge/core/mixins/attachment.py AttachmentMixin.__upload 18 10 0 44%
slidge/core/mixins/attachment.py AttachmentMixin.__no_upload 35 11 0 69%
slidge/core/mixins/attachment.py AttachmentMixin.__valid_url 2 0 0 100%
slidge/core/mixins/attachment.py AttachmentMixin.__get_stored 8 1 0 88%
slidge/core/mixins/attachment.py AttachmentMixin.__get_url 49 22 0 55%
slidge/core/mixins/attachment.py AttachmentMixin.__set_sims 25 3 0 88%
slidge/core/mixins/attachment.py AttachmentMixin.__set_sfs 12 0 0 100%
slidge/core/mixins/attachment.py AttachmentMixin.__send_url 10 0 0 100%
slidge/core/mixins/attachment.py AttachmentMixin.__get_base_message 11 0 0 100%
slidge/core/mixins/attachment.py AttachmentMixin.send_file 36 3 0 92%
slidge/core/mixins/attachment.py AttachmentMixin.__send_body 3 0 0 100%
slidge/core/mixins/attachment.py AttachmentMixin.send_files 17 0 0 100%
slidge/core/mixins/attachment.py AttachmentMixin.__store_multi 12 0 0 100%
slidge/core/mixins/attachment.py get_thumbhash 11 1 0 91%
slidge/core/mixins/attachment.py (no function) 48 0 0 100%
slidge/core/mixins/avatar.py AvatarMixin.__init__ 2 0 0 100%
slidge/core/mixins/avatar.py AvatarMixin.avatar 11 0 0 100%
slidge/core/mixins/avatar.py AvatarMixin.avatar 5 0 0 100%
slidge/core/mixins/avatar.py AvatarMixin.__has_changed 13 1 0 92%
slidge/core/mixins/avatar.py AvatarMixin.set_avatar 22 9 0 59%
slidge/core/mixins/avatar.py AvatarMixin.get_cached_avatar 8 0 0 100%
slidge/core/mixins/avatar.py AvatarMixin.get_avatar 7 0 0 100%
slidge/core/mixins/avatar.py AvatarMixin._post_avatar_update 0 0 1 100%
slidge/core/mixins/avatar.py convert_avatar 7 0 0 100%
slidge/core/mixins/avatar.py (no function) 25 0 2 100%
slidge/core/mixins/base.py Base.user_jid 1 1 0 0%
slidge/core/mixins/base.py Base.user_pk 1 1 0 0%
slidge/core/mixins/base.py BaseSender._send 0 0 1 100%
slidge/core/mixins/base.py (no function) 17 0 3 100%
slidge/core/mixins/db.py DBMixin.merge 2 0 0 100%
slidge/core/mixins/db.py DBMixin.commit 8 0 0 100%
slidge/core/mixins/db.py UpdateInfoMixin.__init__ 4 1 0 75%
slidge/core/mixins/db.py UpdateInfoMixin.serialize_extra_attributes 1 0 0 100%
slidge/core/mixins/db.py UpdateInfoMixin.deserialize_extra_attributes 1 1 0 0%
slidge/core/mixins/db.py UpdateInfoMixin.updating_info 5 0 0 100%
slidge/core/mixins/db.py UpdateInfoMixin.commit 4 0 0 100%
slidge/core/mixins/db.py (no function) 20 0 2 100%
slidge/core/mixins/disco.py BaseDiscoMixin._get_disco_name 3 1 0 67%
slidge/core/mixins/disco.py BaseDiscoMixin.features 1 1 0 0%
slidge/core/mixins/disco.py BaseDiscoMixin.extended_features 1 1 0 0%
slidge/core/mixins/disco.py BaseDiscoMixin.get_disco_info 8 0 0 100%
slidge/core/mixins/disco.py BaseDiscoMixin.get_caps_ver 4 0 0 100%
slidge/core/mixins/disco.py ChatterDiscoMixin.features 21 0 0 100%
slidge/core/mixins/disco.py ChatterDiscoMixin.extended_features 7 0 0 100%
slidge/core/mixins/disco.py ContactAccountDiscoMixin.get_disco_info 9 0 0 100%
slidge/core/mixins/disco.py (no function) 33 0 0 100%
slidge/core/mixins/message.py ChatStateMixin.__init__ 2 0 0 100%
slidge/core/mixins/message.py ChatStateMixin._chat_state 6 6 0 0%
slidge/core/mixins/message.py ChatStateMixin.active 1 1 0 0%
slidge/core/mixins/message.py ChatStateMixin.composing 1 1 0 0%
slidge/core/mixins/message.py ChatStateMixin.paused 1 1 0 0%
slidge/core/mixins/message.py ChatStateMixin.inactive 1 1 0 0%
slidge/core/mixins/message.py ChatStateMixin.gone 1 1 0 0%
slidge/core/mixins/message.py MarkerMixin._make_marker 3 0 0 100%
slidge/core/mixins/message.py MarkerMixin.ack 1 1 0 0%
slidge/core/mixins/message.py MarkerMixin.received 4 0 0 100%
slidge/core/mixins/message.py MarkerMixin.displayed 3 0 0 100%
slidge/core/mixins/message.py MarkerMixin.__send_mds 16 3 0 81%
slidge/core/mixins/message.py CarbonMessageMixin._privileged_send 10 2 0 80%
slidge/core/mixins/message.py InviteMixin.invite_to 7 1 0 86%
slidge/core/mixins/message.py (no function) 43 0 2 100%
slidge/core/mixins/message_maker.py MessageMaker._recipient_pk 1 0 0 100%
slidge/core/mixins/message_maker.py MessageMaker._make_message 26 3 0 88%
slidge/core/mixins/message_maker.py MessageMaker._set_msg_id 9 0 0 100%
slidge/core/mixins/message_maker.py MessageMaker._legacy_to_xmpp 5 0 0 100%
slidge/core/mixins/message_maker.py MessageMaker._add_delay 9 0 0 100%
slidge/core/mixins/message_maker.py MessageMaker._add_reply_to 24 6 0 75%
slidge/core/mixins/message_maker.py MessageMaker._add_link_previews 8 0 0 100%
slidge/core/mixins/message_maker.py (no function) 26 0 2 100%
slidge/core/mixins/message_text.py TextMessageMixin.__default_hints 6 1 0 83%
slidge/core/mixins/message_text.py TextMessageMixin._replace_id 7 1 0 86%
slidge/core/mixins/message_text.py TextMessageMixin.send_text 14 3 0 79%
slidge/core/mixins/message_text.py TextMessageMixin.correct 1 0 0 100%
slidge/core/mixins/message_text.py TextMessageMixin.react 6 0 0 100%
slidge/core/mixins/message_text.py TextMessageMixin.retract 5 0 0 100%
slidge/core/mixins/message_text.py (no function) 13 0 0 100%
slidge/core/mixins/presence.py _update_last_seen_fallback 7 6 0 14%
slidge/core/mixins/presence.py _clear_last_seen_task 4 2 0 50%
slidge/core/mixins/presence.py PresenceMixin.__init__ 2 0 0 100%
slidge/core/mixins/presence.py PresenceMixin.__stored 7 0 0 100%
slidge/core/mixins/presence.py PresenceMixin.__contact_pk 2 0 0 100%
slidge/core/mixins/presence.py PresenceMixin._get_last_presence 4 0 0 100%
slidge/core/mixins/presence.py PresenceMixin._store_last_presence 9 0 0 100%
slidge/core/mixins/presence.py PresenceMixin._make_presence 34 3 0 91%
slidge/core/mixins/presence.py PresenceMixin.send_last_presence 7 0 0 100%
slidge/core/mixins/presence.py PresenceMixin.online 4 2 0 50%
slidge/core/mixins/presence.py PresenceMixin.away 4 2 0 50%
slidge/core/mixins/presence.py PresenceMixin.extended_away 4 2 0 50%
slidge/core/mixins/presence.py PresenceMixin.busy 4 2 0 50%
slidge/core/mixins/presence.py PresenceMixin.offline 4 2 0 50%
slidge/core/mixins/presence.py get_last_seen_fallback 4 0 0 100%
slidge/core/mixins/presence.py (no function) 36 0 2 100%
slidge/core/mixins/recipient.py ReactionRecipientMixin.restricted_emoji_extended_feature 11 0 0 100%
slidge/core/mixins/recipient.py ReactionRecipientMixin.available_emojis 1 0 0 100%
slidge/core/mixins/recipient.py ThreadRecipientMixin.create_thread 1 0 0 100%
slidge/core/mixins/recipient.py (no function) 10 0 2 100%
slidge/core/pubsub.py PepAvatar.__init__ 3 0 0 100%
slidge/core/pubsub.py PepAvatar.data 5 0 0 100%
slidge/core/pubsub.py PepAvatar.set_avatar_from_cache 5 0 0 100%
slidge/core/pubsub.py PubSubComponent.__init__ 2 0 0 100%
slidge/core/pubsub.py PubSubComponent.plugin_init 9 0 0 100%
slidge/core/pubsub.py PubSubComponent.__get_features 14 3 0 79%
slidge/core/pubsub.py PubSubComponent.on_presence_available 24 12 0 50%
slidge/core/pubsub.py PubSubComponent.broadcast_vcard_event 5 0 0 100%
slidge/core/pubsub.py PubSubComponent.__get_contact 2 0 0 100%
slidge/core/pubsub.py PubSubComponent._get_authorized_avatar 13 7 0 46%
slidge/core/pubsub.py PubSubComponent._get_authorized_nick 7 3 0 57%
slidge/core/pubsub.py PubSubComponent.__reply_with 8 3 0 62%
slidge/core/pubsub.py PubSubComponent._get_avatar_data 2 0 0 100%
slidge/core/pubsub.py PubSubComponent._get_avatar_metadata 2 2 0 0%
slidge/core/pubsub.py PubSubComponent._get_vcard 6 0 0 100%
slidge/core/pubsub.py PubSubComponent._reply_with_payload 8 0 0 100%
slidge/core/pubsub.py PubSubComponent.__broadcast 29 6 0 79%
slidge/core/pubsub.py PubSubComponent.broadcast_avatar 6 0 0 100%
slidge/core/pubsub.py PubSubComponent.broadcast_nick 4 0 0 100%
slidge/core/pubsub.py get_user_nick 4 0 0 100%
slidge/core/pubsub.py (no function) 49 0 3 100%
slidge/core/session.py BaseSession.__init__ 11 0 0 100%
slidge/core/session.py BaseSession.user_jid 1 0 0 100%
slidge/core/session.py BaseSession.user_pk 1 0 0 100%
slidge/core/session.py BaseSession.http 1 0 0 100%
slidge/core/session.py BaseSession.__remove_task 2 0 0 100%
slidge/core/session.py BaseSession.create_task 5 0 0 100%
slidge/core/session.py BaseSession.cancel_all_tasks 2 1 0 50%
slidge/core/session.py BaseSession.login 0 0 1 100%
slidge/core/session.py BaseSession.logout 0 0 1 100%
slidge/core/session.py BaseSession.on_text 0 0 1 100%
slidge/core/session.py BaseSession.on_file 0 0 1 100%
slidge/core/session.py BaseSession.on_sticker 0 0 1 100%
slidge/core/session.py BaseSession.on_active 0 0 1 100%
slidge/core/session.py BaseSession.on_inactive 0 0 1 100%
slidge/core/session.py BaseSession.on_composing 0 0 1 100%
slidge/core/session.py BaseSession.on_paused 0 0 1 100%
slidge/core/session.py BaseSession.on_gone 0 0 1 100%
slidge/core/session.py BaseSession.on_displayed 0 0 1 100%
slidge/core/session.py BaseSession.on_correct 0 0 1 100%
slidge/core/session.py BaseSession.on_react 0 0 1 100%
slidge/core/session.py BaseSession.on_retract 0 0 1 100%
slidge/core/session.py BaseSession.on_presence 0 0 1 100%
slidge/core/session.py BaseSession.on_search 0 0 1 100%
slidge/core/session.py BaseSession.on_avatar 0 0 1 100%
slidge/core/session.py BaseSession.on_moderate 0 0 1 100%
slidge/core/session.py BaseSession.on_create_group 0 0 1 100%
slidge/core/session.py BaseSession.on_invitation 1 1 0 0%
slidge/core/session.py BaseSession.on_leave_group 0 0 1 100%
slidge/core/session.py BaseSession.__reset_ready 1 0 0 100%
slidge/core/session.py BaseSession.logged 1 0 0 100%
slidge/core/session.py BaseSession.logged 9 1 0 89%
slidge/core/session.py BaseSession.__repr__ 1 1 0 0%
slidge/core/session.py BaseSession.shutdown 9 4 0 56%
slidge/core/session.py BaseSession.__logout 4 4 0 0%
slidge/core/session.py BaseSession.legacy_to_xmpp_msg_id 1 0 0 100%
slidge/core/session.py BaseSession.xmpp_to_legacy_msg_id 1 0 0 100%
slidge/core/session.py BaseSession.raise_if_not_logged 2 1 0 50%
slidge/core/session.py BaseSession._from_user_or_none 7 0 0 100%
slidge/core/session.py BaseSession.from_user 1 1 0 0%
slidge/core/session.py BaseSession.from_stanza 1 0 0 100%
slidge/core/session.py BaseSession.from_jid 6 0 0 100%
slidge/core/session.py BaseSession.kill_by_jid 19 6 0 68%
slidge/core/session.py BaseSession.__ack 2 2 0 0%
slidge/core/session.py BaseSession.send_gateway_status 2 0 0 100%
slidge/core/session.py BaseSession.send_cached_presence 4 2 0 50%
slidge/core/session.py BaseSession.send_gateway_message 1 0 0 100%
slidge/core/session.py BaseSession.send_gateway_invite 1 0 0 100%
slidge/core/session.py BaseSession.input 1 1 0 0%
slidge/core/session.py BaseSession.send_qr 1 1 0 0%
slidge/core/session.py BaseSession.re_login 1 1 0 0%
slidge/core/session.py BaseSession.get_contact_or_group_or_participant 16 1 0 94%
slidge/core/session.py BaseSession.__get_muc_or_participant 6 2 0 67%
slidge/core/session.py BaseSession.wait_for_ready 6 2 0 67%
slidge/core/session.py BaseSession.legacy_module_data_update 3 3 0 0%
slidge/core/session.py BaseSession.legacy_module_data_set 3 3 0 0%
slidge/core/session.py BaseSession.legacy_module_data_clear 3 3 0 0%
slidge/core/session.py (no function) 115 0 4 100%
slidge/db/__init__.py (no function) 3 0 0 100%
slidge/db/alembic/__init__.py (no function) 0 0 0 100%
slidge/db/alembic/env.py run_migrations_offline 4 4 0 0%
slidge/db/alembic/env.py run_migrations_online 8 8 0 0%
slidge/db/alembic/env.py (no function) 10 10 0 0%
slidge/db/avatar.py CachedAvatar.__init__ 2 0 0 100%
slidge/db/avatar.py CachedAvatar.pk 1 1 0 0%
slidge/db/avatar.py CachedAvatar.hash 1 0 0 100%
slidge/db/avatar.py CachedAvatar.height 1 0 0 100%
slidge/db/avatar.py CachedAvatar.width 1 0 0 100%
slidge/db/avatar.py CachedAvatar.etag 1 1 0 0%
slidge/db/avatar.py CachedAvatar.last_modified 1 1 0 0%
slidge/db/avatar.py CachedAvatar.data 1 1 0 0%
slidge/db/avatar.py CachedAvatar.path 1 0 0 100%
slidge/db/avatar.py AvatarCache.__init__ 2 0 0 100%
slidge/db/avatar.py AvatarCache.get 1 0 0 100%
slidge/db/avatar.py AvatarCache.set_dir 11 5 0 55%
slidge/db/avatar.py AvatarCache.close 1 1 0 0%
slidge/db/avatar.py AvatarCache.__get_http_headers 7 0 0 100%
slidge/db/avatar.py AvatarCache.__download 6 0 0 100%
slidge/db/avatar.py AvatarCache.__is_modified 2 0 0 100%
slidge/db/avatar.py AvatarCache.url_modified 6 1 0 83%
slidge/db/avatar.py AvatarCache._get_image 5 1 0 80%
slidge/db/avatar.py AvatarCache.convert_or_get 8 1 0 88%
slidge/db/avatar.py AvatarCache.__convert_url 14 1 0 93%
slidge/db/avatar.py AvatarCache.convert 33 2 0 94%
slidge/db/avatar.py (no function) 59 0 0 100%
slidge/db/meta.py JIDType.process_bind_param 3 1 0 67%
slidge/db/meta.py JIDType.process_result_value 3 0 0 100%
slidge/db/meta.py JSONEncodedDict.process_bind_param 3 0 0 100%
slidge/db/meta.py JSONEncodedDict.process_result_value 3 0 0 100%
slidge/db/meta.py get_engine 6 6 0 0%
slidge/db/meta.py (no function) 22 0 0 100%
slidge/db/models.py GatewayUser.__repr__ 1 1 0 0%
slidge/db/models.py GatewayUser.get 1 1 0 0%
slidge/db/models.py GatewayUser.registration_form 2 2 0 0%
slidge/db/models.py (no function) 170 0 0 100%
slidge/db/store.py UpdatedMixin.__init__ 1 0 0 100%
slidge/db/store.py UpdatedMixin.get_by_pk 2 0 0 100%
slidge/db/store.py SlidgeStore.__init__ 12 0 0 100%
slidge/db/store.py UserStore.__init__ 1 0 0 100%
slidge/db/store.py UserStore.update 8 2 0 75%
slidge/db/store.py AvatarStore.__init__ 1 0 0 100%
slidge/db/store.py IdMapStore._set 8 0 0 100%
slidge/db/store.py IdMapStore.set_thread 1 0 0 100%
slidge/db/store.py IdMapStore.set_msg 1 0 0 100%
slidge/db/store.py IdMapStore._get 1 0 0 100%
slidge/db/store.py IdMapStore.get_xmpp 1 0 0 100%
slidge/db/store.py IdMapStore._get_legacy 1 0 0 100%
slidge/db/store.py IdMapStore.get_legacy 1 0 0 100%
slidge/db/store.py IdMapStore.get_thread 1 0 0 100%
slidge/db/store.py IdMapStore.was_sent_by_user 2 0 0 100%
slidge/db/store.py ContactStore.__init__ 2 0 0 100%
slidge/db/store.py ContactStore.add_to_sent 5 2 0 60%
slidge/db/store.py ContactStore.pop_sent_up_to 9 1 0 89%
slidge/db/store.py MAMStore.__init__ 2 0 0 100%
slidge/db/store.py MAMStore.nuke_older_than 1 1 0 0%
slidge/db/store.py MAMStore.add_message 15 0 0 100%
slidge/db/store.py MAMStore.get_messages 31 2 0 94%
slidge/db/store.py MAMStore.get_first 4 0 0 100%
slidge/db/store.py MAMStore.get_last 4 1 0 75%
slidge/db/store.py MAMStore.get_first_and_last 8 0 0 100%
slidge/db/store.py MAMStore.get_most_recent_with_legacy_id 4 0 0 100%
slidge/db/store.py MAMStore.get_least_recent_with_legacy_id_after 3 0 0 100%
slidge/db/store.py MAMStore.get_by_legacy_id 1 1 0 0%
slidge/db/store.py RoomStore.__init__ 2 0 0 100%
slidge/db/store.py RoomStore.get_all 1 1 0 0%
slidge/db/store.py ParticipantStore.__init__ 1 0 0 100%
slidge/db/store.py ParticipantStore.get_all 4 1 0 75%
slidge/db/store.py BobStore.__init__ 2 0 0 100%
slidge/db/store.py BobStore.__split_cid 1 0 0 100%
slidge/db/store.py BobStore.__get_condition 6 2 0 67%
slidge/db/store.py BobStore.get 5 0 0 100%
slidge/db/store.py BobStore.get_sticker 4 0 0 100%
slidge/db/store.py BobStore.get_bob 9 6 0 33%
slidge/db/store.py BobStore.del_bob 9 9 0 0%
slidge/db/store.py BobStore.set_bob 25 9 0 64%
slidge/db/store.py (no function) 91 0 0 100%
slidge/group/__init__.py (no function) 5 0 0 100%
slidge/group/archive.py MessageArchive.__init__ 2 0 0 100%
slidge/group/archive.py MessageArchive.add 17 1 0 94%
slidge/group/archive.py MessageArchive.__iter__ 1 1 0 0%
slidge/group/archive.py MessageArchive.__to_bound 1 0 0 100%
slidge/group/archive.py MessageArchive.get_hole_bounds 15 0 0 100%
slidge/group/archive.py MessageArchive.get_all 3 0 0 100%
slidge/group/archive.py MessageArchive.send_metadata 9 0 0 100%
slidge/group/archive.py archivable 15 0 0 100%
slidge/group/archive.py (no function) 21 0 2 100%
slidge/group/bookmarks.py LegacyBookmarks.__init__ 9 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.user_nick 1 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.user_nick 1 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.from_store 1 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.__iter__ 4 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.__repr__ 1 1 0 0%
slidge/group/bookmarks.py LegacyBookmarks.legacy_id_to_jid_local_part 1 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.jid_local_part_to_legacy_id 1 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.legacy_id_to_jid_username 1 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.jid_username_to_legacy_id 1 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.by_jid 12 2 0 83%
slidge/group/bookmarks.py LegacyBookmarks.by_jid_only_if_exists 5 0 0 100%
slidge/group/bookmarks.py LegacyBookmarks.by_legacy_id 11 2 0 82%
slidge/group/bookmarks.py LegacyBookmarks.__update_if_needed 13 4 0 69%
slidge/group/bookmarks.py LegacyBookmarks.fill 1 1 1 0%
slidge/group/bookmarks.py LegacyBookmarks.remove 6 0 0 100%
slidge/group/bookmarks.py (no function) 32 0 2 100%
slidge/group/participant.py strip_non_printable 3 3 0 0%
slidge/group/participant.py LegacyParticipant.__init__ 14 1 0 93%
slidge/group/participant.py LegacyParticipant.is_user 5 3 0 40%
slidge/group/participant.py LegacyParticipant.jid 4 0 0 100%
slidge/group/participant.py LegacyParticipant.jid 1 1 0 0%
slidge/group/participant.py LegacyParticipant.commit 5 1 0 80%
slidge/group/participant.py LegacyParticipant.user_jid 1 0 0 100%
slidge/group/participant.py LegacyParticipant.__repr__ 1 0 0 100%
slidge/group/participant.py LegacyParticipant._presence_sent 1 0 0 100%
slidge/group/participant.py LegacyParticipant._presence_sent 4 0 0 100%
slidge/group/participant.py LegacyParticipant.nickname_no_illegal 1 0 0 100%
slidge/group/participant.py LegacyParticipant.affiliation 1 0 0 100%
slidge/group/participant.py LegacyParticipant.affiliation 9 1 0 89%
slidge/group/participant.py LegacyParticipant.send_affiliation_change 8 1 0 88%
slidge/group/participant.py LegacyParticipant.role 1 0 0 100%
slidge/group/participant.py LegacyParticipant.role 9 1 0 89%
slidge/group/participant.py LegacyParticipant.hats 1 0 0 100%
slidge/group/participant.py LegacyParticipant.set_hats 9 3 0 67%
slidge/group/participant.py LegacyParticipant.__update_resource 10 3 0 70%
slidge/group/participant.py LegacyParticipant.send_configuration_change 5 1 0 80%
slidge/group/participant.py LegacyParticipant.nickname 1 0 0 100%
slidge/group/participant.py LegacyParticipant.nickname 19 3 0 84%
slidge/group/participant.py LegacyParticipant._make_presence 28 2 0 93%
slidge/group/participant.py LegacyParticipant.DISCO_NAME 1 0 0 100%
slidge/group/participant.py LegacyParticipant.__send_presence_if_needed 6 0 0 100%
slidge/group/participant.py LegacyParticipant.__occupant_id 7 1 0 86%
slidge/group/participant.py LegacyParticipant._send 27 1 0 96%
slidge/group/participant.py LegacyParticipant.mucadmin_item 11 1 0 91%
slidge/group/participant.py LegacyParticipant.__add_nick_element 4 0 0 100%
slidge/group/participant.py LegacyParticipant._get_last_presence 4 0 0 100%
slidge/group/participant.py LegacyParticipant.send_initial_presence 17 4 0 76%
slidge/group/participant.py LegacyParticipant.leave 1 1 0 0%
slidge/group/participant.py LegacyParticipant.kick 1 0 0 100%
slidge/group/participant.py LegacyParticipant.ban 1 1 0 0%
slidge/group/participant.py LegacyParticipant.get_disco_info 3 1 0 67%
slidge/group/participant.py LegacyParticipant.moderate 13 0 0 100%
slidge/group/participant.py LegacyParticipant.set_room_subject 10 0 0 100%
slidge/group/participant.py escape_nickname 11 2 0 82%
slidge/group/participant.py (no function) 81 0 2 100%
slidge/group/room.py LegacyMUC.__init__ 6 0 0 100%
slidge/group/room.py LegacyMUC.participant_from_store 3 0 0 100%
slidge/group/room.py LegacyMUC.jid 1 0 0 100%
slidge/group/room.py LegacyMUC.jid 1 1 0 0%
slidge/group/room.py LegacyMUC.legacy_id 1 0 0 100%
slidge/group/room.py LegacyMUC.orm 1 1 0 0%
slidge/group/room.py LegacyMUC.type 1 0 0 100%
slidge/group/room.py LegacyMUC.type 4 1 0 75%
slidge/group/room.py LegacyMUC.n_participants 1 0 0 100%
slidge/group/room.py LegacyMUC.n_participants 4 1 0 75%
slidge/group/room.py LegacyMUC.user_jid 1 0 0 100%
slidge/group/room.py LegacyMUC._set_logger 1 0 0 100%
slidge/group/room.py LegacyMUC.__repr__ 1 0 0 100%
slidge/group/room.py LegacyMUC.subject_date 3 0 0 100%
slidge/group/room.py LegacyMUC.subject_date 4 0 0 100%
slidge/group/room.py LegacyMUC.__send_configuration_change 2 0 0 100%
slidge/group/room.py LegacyMUC.user_nick 1 0 0 100%
slidge/group/room.py LegacyMUC.user_nick 4 1 0 75%
slidge/group/room.py LegacyMUC.add_user_resource 6 0 0 100%
slidge/group/room.py LegacyMUC.get_user_resources 4 0 0 100%
slidge/group/room.py LegacyMUC.remove_user_resource 6 0 0 100%
slidge/group/room.py LegacyMUC.__fill_participants 30 7 0 77%
slidge/group/room.py LegacyMUC.get_participants 7 0 0 100%
slidge/group/room.py LegacyMUC.__fill_history 24 2 0 92%
slidge/group/room.py LegacyMUC.DISCO_NAME 1 0 0 100%
slidge/group/room.py LegacyMUC.name 1 0 0 100%
slidge/group/room.py LegacyMUC.name 6 1 0 83%
slidge/group/room.py LegacyMUC.description 1 0 0 100%
slidge/group/room.py LegacyMUC.description 5 1 0 80%
slidge/group/room.py LegacyMUC.on_presence_unavailable 11 11 0 0%
slidge/group/room.py LegacyMUC.update_info 0 0 1 100%
slidge/group/room.py LegacyMUC.backfill 0 0 1 100%
slidge/group/room.py LegacyMUC.fill_participants 1 0 0 100%
slidge/group/room.py LegacyMUC.subject 1 0 0 100%
slidge/group/room.py LegacyMUC.subject 5 1 0 80%
slidge/group/room.py LegacyMUC.is_anonymous 1 0 0 100%
slidge/group/room.py LegacyMUC.subject_setter 1 0 0 100%
slidge/group/room.py LegacyMUC.subject_setter 9 1 0 89%
slidge/group/room.py LegacyMUC.__get_subject_setter_participant 3 1 0 67%
slidge/group/room.py LegacyMUC.features 8 2 0 75%
slidge/group/room.py LegacyMUC.extended_features 31 5 0 84%
slidge/group/room.py LegacyMUC.shutdown 7 7 0 0%
slidge/group/room.py LegacyMUC.user_full_jids 4 0 0 100%
slidge/group/room.py LegacyMUC.user_muc_jid 2 0 0 100%
slidge/group/room.py LegacyMUC.echo 16 0 0 100%
slidge/group/room.py LegacyMUC._post_avatar_update 2 0 0 100%
slidge/group/room.py LegacyMUC._send_room_presence 9 0 0 100%
slidge/group/room.py LegacyMUC.join 41 6 0 85%
slidge/group/room.py LegacyMUC.get_user_participant 3 0 0 100%
slidge/group/room.py LegacyMUC.__store_participant 3 0 0 100%
slidge/group/room.py LegacyMUC.get_participant 14 1 0 93%
slidge/group/room.py LegacyMUC.get_system_participant 1 0 0 100%
slidge/group/room.py LegacyMUC.get_participant_by_contact 20 1 0 95%
slidge/group/room.py LegacyMUC.get_participant_by_legacy_id 5 2 0 60%
slidge/group/room.py LegacyMUC.remove_participant 16 2 0 88%
slidge/group/room.py LegacyMUC.rename_participant 8 2 0 75%
slidge/group/room.py LegacyMUC.__old_school_history 10 2 0 80%
slidge/group/room.py LegacyMUC.send_mam 54 2 0 96%
slidge/group/room.py LegacyMUC.send_mam_metadata 2 0 0 100%
slidge/group/room.py LegacyMUC.kick_resource 8 0 0 100%
slidge/group/room.py LegacyMUC.__get_bookmark 21 10 0 52%
slidge/group/room.py LegacyMUC.add_to_bookmarks 59 7 0 88%
slidge/group/room.py LegacyMUC.on_avatar 0 0 1 100%
slidge/group/room.py LegacyMUC.on_set_affiliation 0 0 1 100%
slidge/group/room.py LegacyMUC.on_kick 0 0 1 100%
slidge/group/room.py LegacyMUC.on_set_config 0 0 1 100%
slidge/group/room.py LegacyMUC.on_destroy_request 0 0 1 100%
slidge/group/room.py LegacyMUC.parse_mentions 17 2 0 88%
slidge/group/room.py LegacyMUC.on_set_subject 0 0 1 100%
slidge/group/room.py LegacyMUC.participants_filled 1 0 0 100%
slidge/group/room.py set_origin_id 3 0 0 100%
slidge/group/room.py int_or_none 4 0 0 100%
slidge/group/room.py equals_zero 3 1 0 67%
slidge/group/room.py str_to_datetime_or_none 6 2 0 67%
slidge/group/room.py bookmarks_form 8 0 0 100%
slidge/group/room.py (no function) 157 0 2 100%
slidge/main.py MainConfig.update_dynamic_defaults 9 3 0 67%
slidge/main.py get_configurator 8 0 0 100%
slidge/main.py get_parser 1 0 0 100%
slidge/main.py configure 7 7 0 0%
slidge/main.py handle_sigterm 2 2 0 0%
slidge/main.py main 54 54 0 0%
slidge/main.py (no function) 27 0 0 100%
slidge/migration.py remove_avatar_cache_v1 4 4 0 0%
slidge/migration.py get_alembic_cfg 3 3 0 0%
slidge/migration.py migrate 2 2 0 0%
slidge/migration.py main 3 3 0 0%
slidge/migration.py (no function) 18 1 0 94%
slidge/slixfix/__init__.py plugin_init 5 0 0 100%
slidge/slixfix/__init__.py set_pinned 4 0 0 100%
slidge/slixfix/__init__.py session_bind 1 0 0 100%
slidge/slixfix/__init__.py reply 9 1 0 89%
slidge/slixfix/__init__.py PrivilegedIqError.nested_error 5 5 0 0%
slidge/slixfix/__init__.py send_privileged_iq 22 6 0 73%
slidge/slixfix/__init__.py (no function) 27 0 0 100%
slidge/slixfix/delivery_receipt.py DeliveryReceipt.__init__ 1 0 0 100%
slidge/slixfix/delivery_receipt.py DeliveryReceipt.ack 4 0 0 100%
slidge/slixfix/delivery_receipt.py DeliveryReceipt.make_ack 6 0 0 100%
slidge/slixfix/delivery_receipt.py DeliveryReceipt.requires_receipt 1 0 0 100%
slidge/slixfix/delivery_receipt.py (no function) 8 0 2 100%
slidge/slixfix/link_preview/__init__.py (no function) 3 0 0 100%
slidge/slixfix/link_preview/link_preview.py LinkPreview.plugin_init 1 0 0 100%
slidge/slixfix/link_preview/link_preview.py (no function) 8 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview._set_og 2 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview._get_og 4 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.set_title 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.get_title 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.set_description 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.get_description 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.set_url 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.get_url 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.set_image 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.get_image 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.set_type 1 1 0 0%
slidge/slixfix/link_preview/stanza.py LinkPreview.get_type 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.set_site_name 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.get_site_name 1 0 0 100%
slidge/slixfix/link_preview/stanza.py LinkPreview.get_about 1 0 0 100%
slidge/slixfix/link_preview/stanza.py register_plugin 3 0 0 100%
slidge/slixfix/link_preview/stanza.py (no function) 39 0 0 100%
slidge/slixfix/roster.py YesSet.__contains__ 2 2 0 0%
slidge/slixfix/roster.py RosterBackend.__init__ 1 0 0 100%
slidge/slixfix/roster.py RosterBackend.entries 1 0 0 100%
slidge/slixfix/roster.py RosterBackend.save 1 0 0 100%
slidge/slixfix/roster.py RosterBackend.load 4 1 0 75%
slidge/slixfix/roster.py (no function) 13 0 2 100%
slidge/slixfix/xep_0077/__init__.py (no function) 4 0 0 100%
slidge/slixfix/xep_0077/register.py XEP_0077.plugin_init 15 1 0 93%
slidge/slixfix/xep_0077/register.py XEP_0077.plugin_end 2 2 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077._user_get 1 1 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077._user_remove 1 1 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077._make_registration_form 14 14 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077._user_validate 1 1 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077._user_modify 1 1 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077._handle_registration 35 16 0 54%
slidge/slixfix/xep_0077/register.py XEP_0077._send_form 2 1 0 50%
slidge/slixfix/xep_0077/register.py XEP_0077._force_registration 2 1 0 50%
slidge/slixfix/xep_0077/register.py XEP_0077._force_stream_feature 11 11 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077._handle_register_feature 7 7 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077.get_registration 6 6 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077.cancel_registration 6 6 0 0%
slidge/slixfix/xep_0077/register.py XEP_0077.change_password 10 10 0 0%
slidge/slixfix/xep_0077/register.py _send_error 8 8 0 0%
slidge/slixfix/xep_0077/register.py (no function) 34 0 0 100%
slidge/slixfix/xep_0077/stanza.py Register.get_registered 2 2 0 0%
slidge/slixfix/xep_0077/stanza.py Register.get_remove 2 0 0 100%
slidge/slixfix/xep_0077/stanza.py Register.set_registered 3 3 0 0%
slidge/slixfix/xep_0077/stanza.py Register.set_remove 3 3 0 0%
slidge/slixfix/xep_0077/stanza.py Register.add_field 1 1 0 0%
slidge/slixfix/xep_0077/stanza.py Register.get_fields 5 5 0 0%
slidge/slixfix/xep_0077/stanza.py Register.set_fields 3 3 0 0%
slidge/slixfix/xep_0077/stanza.py Register.del_fields 2 2 0 0%
slidge/slixfix/xep_0077/stanza.py (no function) 23 0 0 100%
slidge/slixfix/xep_0100/__init__.py (no function) 3 0 0 100%
slidge/slixfix/xep_0100/gateway.py XEP_0100.plugin_init 11 2 0 82%
slidge/slixfix/xep_0100/gateway.py XEP_0100.plugin_end 5 5 0 0%
slidge/slixfix/xep_0100/gateway.py XEP_0100.get_user 1 0 0 100%
slidge/slixfix/xep_0100/gateway.py XEP_0100.on_user_unregister 3 0 0 100%
slidge/slixfix/xep_0100/gateway.py XEP_0100.on_user_register 2 2 0 0%
slidge/slixfix/xep_0100/gateway.py XEP_0100.add_component_to_roster 7 7 0 0%
slidge/slixfix/xep_0100/gateway.py XEP_0100._set_roster 1 1 0 0%
slidge/slixfix/xep_0100/gateway.py XEP_0100.on_presence_unsubscribe 4 4 0 0%
slidge/slixfix/xep_0100/gateway.py XEP_0100.on_message 8 2 0 75%
slidge/slixfix/xep_0100/gateway.py (no function) 22 0 0 100%
slidge/slixfix/xep_0100/stanza.py (no function) 7 0 0 100%
slidge/slixfix/xep_0153/__init__.py (no function) 3 0 0 100%
slidge/slixfix/xep_0153/vcard_avatar.py XEP_0153.plugin_init 1 0 0 100%
slidge/slixfix/xep_0153/vcard_avatar.py (no function) 10 0 0 100%
slidge/slixfix/xep_0292/__init__.py (no function) 3 0 0 100%
slidge/slixfix/xep_0292/vcard4.py VCard4Provider.plugin_init 1 0 0 100%
slidge/slixfix/xep_0292/vcard4.py (no function) 8 0 0 100%
slidge/util/__init__.py (no function) 2 0 0 100%
slidge/util/archive_msg.py fix_namespaces 3 0 0 100%
slidge/util/archive_msg.py HistoryMessage.__init__ 15 0 0 100%
slidge/util/archive_msg.py HistoryMessage.stanza_component_ns 3 0 0 100%
slidge/util/archive_msg.py HistoryMessage.forwarded 4 0 0 100%
slidge/util/archive_msg.py (no function) 13 0 0 100%
slidge/util/conf.py Option.__init__ 3 0 0 100%
slidge/util/conf.py Option.doc 1 0 0 100%
slidge/util/conf.py Option.required 1 0 0 100%
slidge/util/conf.py Option.default 1 0 0 100%
slidge/util/conf.py Option.short 1 0 0 100%
slidge/util/conf.py Option.nargs 7 1 0 86%
slidge/util/conf.py Option.type 7 0 0 100%
slidge/util/conf.py Option.names 4 0 0 100%
slidge/util/conf.py Option.kwargs 13 0 0 100%
slidge/util/conf.py Option.name_to_env_var 1 0 0 100%
slidge/util/conf.py ConfigModule.__init__ 6 0 0 100%
slidge/util/conf.py ConfigModule._list_options 1 0 0 100%
slidge/util/conf.py ConfigModule.set_conf 43 2 0 95%
slidge/util/conf.py ConfigModule.options 4 0 0 100%
slidge/util/conf.py ConfigModule.add_options_to_parser 6 1 0 83%
slidge/util/conf.py ConfigModule.update_dynamic_defaults 1 0 0 100%
slidge/util/conf.py _is_optional 5 0 0 100%
slidge/util/conf.py _argv_to_option_name 1 0 0 100%
slidge/util/conf.py (no function) 40 0 0 100%
slidge/util/jid_escaping.py unescape_node 13 6 0 54%
slidge/util/jid_escaping.py (no function) 6 0 0 100%
slidge/util/lock.py NamedLockMixin.__init__ 2 0 0 100%
slidge/util/lock.py NamedLockMixin.lock 13 0 0 100%
slidge/util/lock.py NamedLockMixin.get_lock 1 0 0 100%
slidge/util/lock.py (no function) 10 0 0 100%
slidge/util/test.py SlixTestPlus.setUp 2 0 0 100%
slidge/util/test.py SlixTestPlus.check 50 13 0 74%
slidge/util/test.py SlixTestPlus.next_sent 8 0 0 100%
slidge/util/test.py SlidgeTest.setUpClass 2 0 0 100%
slidge/util/test.py SlidgeTest.setUp 38 2 0 95%
slidge/util/test.py SlidgeTest.setUp.new_id 2 0 0 100%
slidge/util/test.py SlidgeTest.tearDown 3 0 0 100%
slidge/util/test.py SlidgeTest.setup_logged_session 26 2 0 92%
slidge/util/test.py SlidgeTest.tearDownClass 1 0 0 100%
slidge/util/test.py format_stanza 1 0 0 100%
slidge/util/test.py find_subclass 13 1 0 92%
slidge/util/test.py reset_subclasses 7 0 0 100%
slidge/util/test.py reset_commands 1 1 0 0%
slidge/util/test.py (no function) 53 3 0 94%
slidge/util/types.py LegacyAttachment.__post_init__ 4 1 0 75%
slidge/util/types.py (no function) 92 0 6 100%
slidge/util/util.py fix_suffix 19 19 0 0%
slidge/util/util.py SubclassableOnce.__init__ 7 0 0 100%
slidge/util/util.py SubclassableOnce.get_self_or_unique_subclass 4 0 0 100%
slidge/util/util.py SubclassableOnce.get_unique_subclass 4 0 0 100%
slidge/util/util.py SubclassableOnce.reset_subclass 5 0 0 100%
slidge/util/util.py is_valid_phone_number 6 1 0 83%
slidge/util/util.py strip_illegal_chars 1 0 0 100%
slidge/util/util.py addLoggingLevel 17 6 0 65%
slidge/util/util.py addLoggingLevel.logForLevel 2 1 0 50%
slidge/util/util.py addLoggingLevel.logToRoot 1 1 0 0%
slidge/util/util.py SlidgeLogger.trace 1 1 0 0%
slidge/util/util.py merge_resources 18 2 0 89%
slidge/util/util.py remove_emoji_variation_selector_16 1 0 0 100%
slidge/util/util.py deprecated 2 0 0 100%
slidge/util/util.py deprecated.wrapped 2 2 0 0%
slidge/util/util.py dict_to_named_tuple 1 0 0 100%
slidge/util/util.py replace_mentions 9 1 0 89%
slidge/util/util.py timeit 2 0 0 100%
slidge/util/util.py timeit.wrapped 4 0 0 100%
slidge/util/util.py strip_leading_emoji 6 1 0 83%
slidge/util/util.py noop_coro 1 0 0 100%
slidge/util/util.py (no function) 50 2 2 96%
Total   7722 1437 111 81%

No items found using the specified filter.