Coverage report: 79%

Files Functions Classes

coverage.py v7.15.4, created at 2026-08-26 02:32 +0800

File class   statements missing excluded   coverage
src/lexigram/notification/__init__.py (no class)   22 0 0   100%
src/lexigram/notification/admin/__init__.py (no class)   5 0 0   100%
src/lexigram/notification/admin/contributor.py NotificationAdminContributor   16 9 0   44%
src/lexigram/notification/admin/contributor.py (no class)   26 0 4   100%
src/lexigram/notification/admin/handlers/inbox.py InboxHandlers   43 16 0   63%
src/lexigram/notification/admin/handlers/inbox.py (no class)   28 7 0   75%
src/lexigram/notification/admin/pages/inbox.py NotificationsInboxPage   25 5 0   80%
src/lexigram/notification/admin/pages/inbox.py (no class)   18 2 0   89%
src/lexigram/notification/backends/__init__.py (no class)   6 0 0   100%
src/lexigram/notification/backends/push/__init__.py (no class)   5 0 0   100%
src/lexigram/notification/backends/push/apns.py APNsPush   61 55 0   10%
src/lexigram/notification/backends/push/apns.py (no class)   22 0 2   100%
src/lexigram/notification/backends/push/fcm.py FCMPush   42 5 0   88%
src/lexigram/notification/backends/push/fcm.py (no class)   18 0 2   100%
src/lexigram/notification/backends/push/web_push.py WebPushChannel   46 46 0   0%
src/lexigram/notification/backends/push/web_push.py (no class)   24 4 2   83%
src/lexigram/notification/backends/slack/__init__.py (no class)   3 0 0   100%
src/lexigram/notification/backends/slack/slack_notifier.py SlackNotificationError   2 0 0   100%
src/lexigram/notification/backends/slack/slack_notifier.py SlackMessage   4 0 0   100%
src/lexigram/notification/backends/slack/slack_notifier.py SlackNotifier   71 6 0   92%
src/lexigram/notification/backends/slack/slack_notifier.py (no class)   31 0 0   100%
src/lexigram/notification/backends/sms/__init__.py (no class)   3 0 0   100%
src/lexigram/notification/backends/sms/twilio.py TwilioSMS   32 0 0   100%
src/lexigram/notification/backends/sms/twilio.py (no class)   18 0 2   100%
src/lexigram/notification/backends/sms/whatsapp.py WhatsAppNotificationError   2 0 0   100%
src/lexigram/notification/backends/sms/whatsapp.py WhatsAppMetaNotificationError   3 0 0   100%
src/lexigram/notification/backends/sms/whatsapp.py WhatsAppBackend   80 4 0   95%
src/lexigram/notification/backends/sms/whatsapp.py (no class)   31 0 2   100%
src/lexigram/notification/cli/__init__.py (no class)   0 0 0   100%
src/lexigram/notification/cli/checks.py (no class)   4 4 2   0%
src/lexigram/notification/cli/commands.py (no class)   23 23 0   0%
src/lexigram/notification/cli/contributor.py NotificationCliContributor   8 8 0   0%
src/lexigram/notification/cli/contributor.py (no class)   16 16 0   0%
src/lexigram/notification/cli/doctor.py (no class)   12 12 0   0%
src/lexigram/notification/cli/generators/__init__.py (no class)   0 0 0   100%
src/lexigram/notification/cli/generators/template.py NotificationTemplateGenerator   1 1 0   0%
src/lexigram/notification/cli/generators/template.py (no class)   6 6 0   0%
src/lexigram/notification/cli/schema_setup.py (no class)   12 0 0   100%
src/lexigram/notification/config/__init__.py (no class)   13 0 0   100%
src/lexigram/notification/config/inbox.py InboxConfig   0 0 0   100%
src/lexigram/notification/config/inbox.py (no class)   15 0 0   100%
src/lexigram/notification/config/mailer.py SMTPDriverConfig   3 1 0   67%
src/lexigram/notification/config/mailer.py SendGridDriverConfig   3 1 0   67%
src/lexigram/notification/config/mailer.py NamedMailerConfig   0 0 0   100%
src/lexigram/notification/config/mailer.py MailerConfig   1 0 0   100%
src/lexigram/notification/config/mailer.py (no class)   46 0 0   100%
src/lexigram/notification/config/push.py FCMDriverConfig   3 1 0   67%
src/lexigram/notification/config/push.py APNsDriverConfig   3 1 0   67%
src/lexigram/notification/config/push.py WebPushDriverConfig   3 3 0   0%
src/lexigram/notification/config/push.py NamedPushConfig   0 0 0   100%
src/lexigram/notification/config/push.py (no class)   42 0 0   100%
src/lexigram/notification/config/sms.py TwilioDriverConfig   3 1 0   67%
src/lexigram/notification/config/sms.py NamedSMSConfig   0 0 0   100%
src/lexigram/notification/config/sms.py (no class)   22 0 0   100%
src/lexigram/notification/config/top_level.py NotificationConfig   2 2 0   0%
src/lexigram/notification/config/top_level.py (no class)   19 0 0   100%
src/lexigram/notification/constants.py (no class)   23 2 0   91%
src/lexigram/notification/decorators.py (no class)   2 2 0   0%
src/lexigram/notification/delivery/__init__.py (no class)   4 0 0   100%
src/lexigram/notification/delivery/exceptions.py PermanentDeliveryFailure   2 0 0   100%
src/lexigram/notification/delivery/exceptions.py (no class)   6 0 0   100%
src/lexigram/notification/delivery/retry.py RetryingMailer   20 0 0   100%
src/lexigram/notification/delivery/retry.py (no class)   10 0 2   100%
src/lexigram/notification/delivery/stores.py MemoryDeliveryStore   27 8 0   70%
src/lexigram/notification/delivery/stores.py SqlDeliveryStore   42 42 0   0%
src/lexigram/notification/delivery/stores.py (no class)   33 0 0   100%
src/lexigram/notification/delivery/worker.py (no class)   36 11 0   69%
src/lexigram/notification/di/__init__.py (no class)   5 0 0   100%
src/lexigram/notification/di/inbox_provider.py InboxProvider   25 0 0   100%
src/lexigram/notification/di/inbox_provider.py (no class)   17 0 2   100%
src/lexigram/notification/di/mailer_provider.py MailerProvider   54 20 0   63%
src/lexigram/notification/di/mailer_provider.py (no class)   20 0 2   100%
src/lexigram/notification/di/provider.py NotificationProvider   75 26 0   65%
src/lexigram/notification/di/provider.py (no class)   40 8 2   80%
src/lexigram/notification/events.py NotificationSentEvent   0 0 0   100%
src/lexigram/notification/events.py NotificationFailedEvent   0 0 0   100%
src/lexigram/notification/events.py EmailSentEvent   0 0 0   100%
src/lexigram/notification/events.py EmailBouncedEvent   0 0 0   100%
src/lexigram/notification/events.py InboxMessageCreatedEvent   0 0 0   100%
src/lexigram/notification/events.py InboxMessageReadEvent   0 0 0   100%
src/lexigram/notification/events.py (no class)   32 0 0   100%
src/lexigram/notification/exceptions.py TwilioNotificationError   2 0 0   100%
src/lexigram/notification/exceptions.py FCMNotificationError   2 0 0   100%
src/lexigram/notification/exceptions.py APNsNotificationError   2 2 0   0%
src/lexigram/notification/exceptions.py WebPushNotificationError   3 3 0   0%
src/lexigram/notification/exceptions.py SMTPMailerError   2 0 0   100%
src/lexigram/notification/exceptions.py SendGridMailerError   2 0 0   100%
src/lexigram/notification/exceptions.py InboxError   0 0 0   100%
src/lexigram/notification/exceptions.py InboxMessageNotFoundError   0 0 0   100%
src/lexigram/notification/exceptions.py InboxPermissionError   0 0 0   100%
src/lexigram/notification/exceptions.py (no class)   30 0 0   100%
src/lexigram/notification/hooks.py NotificationSentHook   0 0 0   100%
src/lexigram/notification/hooks.py NotificationFailedHook   0 0 0   100%
src/lexigram/notification/hooks.py EmailDispatchedHook   0 0 0   100%
src/lexigram/notification/hooks.py EmailRenderedHook   0 0 0   100%
src/lexigram/notification/hooks.py InboxMessageCreatedHook   0 0 0   100%
src/lexigram/notification/hooks.py InboxMessageReadHook   0 0 0   100%
src/lexigram/notification/hooks.py (no class)   29 0 0   100%
src/lexigram/notification/inbox/__init__.py (no class)   5 0 0   100%
src/lexigram/notification/inbox/database.py DatabaseInboxStore   54 7 0   87%
src/lexigram/notification/inbox/database.py (no class)   26 0 0   100%
src/lexigram/notification/inbox/memory.py InMemoryInboxStore   28 5 0   82%
src/lexigram/notification/inbox/memory.py (no class)   19 0 0   100%
src/lexigram/notification/inbox/service.py InboxService   15 3 0   80%
src/lexigram/notification/inbox/service.py (no class)   18 0 2   100%
src/lexigram/notification/mailer/__init__.py (no class)   7 0 0   100%
src/lexigram/notification/mailer/console_mailer.py ConsoleMailer   5 4 0   20%
src/lexigram/notification/mailer/console_mailer.py (no class)   13 0 2   100%
src/lexigram/notification/mailer/mailable.py Mailable   0 0 0   100%
src/lexigram/notification/mailer/mailable.py (no class)   10 0 0   100%
src/lexigram/notification/mailer/module.py MailerModule   8 0 0   100%
src/lexigram/notification/mailer/module.py (no class)   11 0 3   100%
src/lexigram/notification/mailer/retrying_mailer.py RetryingMailer   30 0 0   100%
src/lexigram/notification/mailer/retrying_mailer.py (no class)   13 0 4   100%
src/lexigram/notification/mailer/sendgrid_mailer.py SendGridMailer   46 6 0   87%
src/lexigram/notification/mailer/sendgrid_mailer.py (no class)   16 0 2   100%
src/lexigram/notification/mailer/smtp_mailer.py SMTPMailer   54 6 0   89%
src/lexigram/notification/mailer/smtp_mailer.py (no class)   23 0 2   100%
src/lexigram/notification/module.py NotificationModule   5 0 0   100%
src/lexigram/notification/module.py (no class)   11 0 3   100%
src/lexigram/notification/protocols.py (no class)   5 0 0   100%
src/lexigram/notification/push/__init__.py (no class)   3 3 0   0%
src/lexigram/notification/push/events.py PushNotificationSentEvent   0 0 0   100%
src/lexigram/notification/push/events.py PushNotificationFailedEvent   0 0 0   100%
src/lexigram/notification/push/events.py (no class)   13 13 0   0%
src/lexigram/notification/types.py InboxMessageStatus   0 0 0   100%
src/lexigram/notification/types.py InboxQuery   0 0 0   100%
src/lexigram/notification/types.py InboxPageResult   0 0 0   100%
src/lexigram/notification/types.py InboxStats   0 0 0   100%
src/lexigram/notification/types.py (no class)   28 0 0   100%
Total     1958 410 42   79%

No items found using the specified filter.