Coverage report: 97%

Files Functions Classes

coverage.py v7.16.2, created at 2026-11-08 17:42 +0000

File class   statements missing excluded   coverage
custom_components/supernotify/__init__.py (no class)   172 5 6   97%
custom_components/supernotify/actions.py (no class)   229 5 3   98%
custom_components/supernotify/archive.py ArchivableObject   5 0 0   100%
custom_components/supernotify/archive.py ArchiveDestination   1 0 0   100%
custom_components/supernotify/archive.py EventArchiver   15 0 0   100%
custom_components/supernotify/archive.py ArchiveTopic   22 0 0   100%
custom_components/supernotify/archive.py ArchiveDirectory   90 5 0   94%
custom_components/supernotify/archive.py NotificationArchive   38 0 0   100%
custom_components/supernotify/archive.py (no class)   164 8 6   95%
custom_components/supernotify/binary_sensor.py SupernotifyScenarioBinarySensor   12 0 0   100%
custom_components/supernotify/binary_sensor.py SupernotifyScenarioManualBinarySensor   14 0 0   100%
custom_components/supernotify/binary_sensor.py SupernotifyRecipientBinarySensor   12 0 0   100%
custom_components/supernotify/binary_sensor.py SupernotifyLegacyBinarySensor   12 0 0   100%
custom_components/supernotify/binary_sensor.py SupernotifyDeliveryBinarySensor   1 0 0   100%
custom_components/supernotify/binary_sensor.py SupernotifyTransportBinarySensor   1 0 0   100%
custom_components/supernotify/binary_sensor.py (no class)   117 0 10   100%
custom_components/supernotify/button.py SupernotifyResetOverridesButton   3 0 0   100%
custom_components/supernotify/button.py (no class)   17 0 5   100%
custom_components/supernotify/common.py CallRecord   8 1 0   88%
custom_components/supernotify/common.py DupeCheckable   1 1 0   0%
custom_components/supernotify/common.py DupeChecker   33 1 0   97%
custom_components/supernotify/common.py (no class)   108 2 2   98%
custom_components/supernotify/compat.py (no class)   4 0 3   100%
custom_components/supernotify/config_flow.py SupernotifyConfigFlow   20 0 0   100%
custom_components/supernotify/config_flow.py SupernotifyOptionsFlow   44 0 0   100%
custom_components/supernotify/config_flow.py RecipientSubentryFlow   88 3 0   97%
custom_components/supernotify/config_flow.py TransportSubentryFlow   83 2 0   98%
custom_components/supernotify/config_flow.py (no class)   187 3 2   98%
custom_components/supernotify/const.py (no class)   255 0 0   100%
custom_components/supernotify/context.py Context   18 1 0   94%
custom_components/supernotify/context.py (no class)   12 0 11   100%
custom_components/supernotify/delivery.py DeliveryProvenance   0 0 0   100%
custom_components/supernotify/delivery.py Delivery   136 2 0   99%
custom_components/supernotify/delivery.py DeliveryRegistry   94 2 0   98%
custom_components/supernotify/delivery.py (no class)   62 0 8   100%
custom_components/supernotify/diagnostics.py (no class)   13 0 2   100%
custom_components/supernotify/engine.py SupernotifyEngine   163 6 0   96%
custom_components/supernotify/engine.py (no class)   69 0 4   100%
custom_components/supernotify/envelope.py Envelope   231 4 0   98%
custom_components/supernotify/envelope.py (no class)   43 0 8   100%
custom_components/supernotify/exceptions.py UncategorizedTargetError   3 0 0   100%
custom_components/supernotify/exceptions.py (no class)   5 0 0   100%
custom_components/supernotify/hass_api.py TrackedDeviceDetails   3 0 0   100%
custom_components/supernotify/hass_api.py TargetSelectorResolution   1 0 0   100%
custom_components/supernotify/hass_api.py HomeAssistantAPI   521 21 0   96%
custom_components/supernotify/hass_api.py ConditionErrorLoggingAdaptor   12 0 0   100%
custom_components/supernotify/hass_api.py TemplateWrapper   6 1 0   83%
custom_components/supernotify/hass_api.py (no class)   197 0 12   100%
custom_components/supernotify/llm.py DocsPage   0 0 0   100%
custom_components/supernotify/llm.py _DocsCache   0 0 0   100%
custom_components/supernotify/llm.py SupernotifyTool   1 0 0   100%
custom_components/supernotify/llm.py NotifyTool   10 2 0   80%
custom_components/supernotify/llm.py SnoozeTool   35 0 0   100%
custom_components/supernotify/llm.py RecentNotificationsTool   19 0 0   100%
custom_components/supernotify/llm.py DryRunTool   11 2 0   82%
custom_components/supernotify/llm.py SnoozesTool   2 0 0   100%
custom_components/supernotify/llm.py HelpTool   12 0 0   100%
custom_components/supernotify/llm.py (no class)   196 4 4   98%
custom_components/supernotify/logbook.py (no class)   24 0 0   100%
custom_components/supernotify/media_grab.py ReprocessOption   0 0 0   100%
custom_components/supernotify/media_grab.py MediaStorage   75 9 0   88%
custom_components/supernotify/media_grab.py (no class)   280 8 7   97%
custom_components/supernotify/model.py TransportFeature   0 0 0   100%
custom_components/supernotify/model.py TransportConfig   22 0 0   100%
custom_components/supernotify/model.py DeliveryCustomization   11 0 0   100%
custom_components/supernotify/model.py SelectionRule   30 2 0   93%
custom_components/supernotify/model.py DataFilter   65 1 0   98%
custom_components/supernotify/model.py DeliveryConfig   39 0 0   100%
custom_components/supernotify/model.py ConditionVariables   23 1 0   96%
custom_components/supernotify/model.py SuppressionReason   1 0 0   100%
custom_components/supernotify/model.py TargetRequired   5 1 0   80%
custom_components/supernotify/model.py TargetType   0 0 0   100%
custom_components/supernotify/model.py GlobalTargetType   0 0 0   100%
custom_components/supernotify/model.py RecipientType   0 0 0   100%
custom_components/supernotify/model.py QualifiedTargetType   0 0 0   100%
custom_components/supernotify/model.py CommandType   0 0 0   100%
custom_components/supernotify/model.py MessageOnlyPolicy   0 0 0   100%
custom_components/supernotify/model.py DebugTrace   53 1 0   98%
custom_components/supernotify/model.py NotifyEntityPlatform   0 0 0   100%
custom_components/supernotify/model.py (no class)   114 0 3   100%
custom_components/supernotify/notification.py DeliveryTargetOverride   1 0 0   100%
custom_components/supernotify/notification.py Notification   792 37 0   95%
custom_components/supernotify/notification.py (no class)   88 0 8   100%
custom_components/supernotify/notify.py SuperNotificationService   16 1 0   94%
custom_components/supernotify/notify.py ExposedNotifyEntity   6 0 0   100%
custom_components/supernotify/notify.py (no class)   78 2 4   97%
custom_components/supernotify/options.py DeliveryOption   0 0 0   100%
custom_components/supernotify/options.py (no class)   38 1 0   97%
custom_components/supernotify/people.py RecipientNotifyEntity   27 6 0   78%
custom_components/supernotify/people.py Recipient   103 1 0   99%
custom_components/supernotify/people.py PeopleRegistry   136 10 0   93%
custom_components/supernotify/people.py (no class)   71 0 6   100%
custom_components/supernotify/repairs.py SupernotifyLegacyYamlRepairFlow   88 12 0   86%
custom_components/supernotify/repairs.py (no class)   116 0 3   100%
custom_components/supernotify/scenario.py ScenarioRegistry   88 2 0   98%
custom_components/supernotify/scenario.py Scenario   114 6 0   95%
custom_components/supernotify/scenario.py (no class)   64 10 6   84%
custom_components/supernotify/schema.py OutcomeSelection   0 0 0   100%
custom_components/supernotify/schema.py DeliveryOutcome   0 0 0   100%
custom_components/supernotify/schema.py EnvelopeOutcome   0 0 0   100%
custom_components/supernotify/schema.py SelectionRank   0 0 0   100%
custom_components/supernotify/schema.py (no class)   128 5 0   96%
custom_components/supernotify/sensor.py SupernotifyCounterSensor   16 1 0   94%
custom_components/supernotify/sensor.py (no class)   24 0 5   100%
custom_components/supernotify/sentences.py Subject   0 0 0   100%
custom_components/supernotify/sentences.py Voice   3 0 0   100%
custom_components/supernotify/sentences.py (no class)   199 3 3   98%
custom_components/supernotify/snoozer.py Snooze   32 0 0   100%
custom_components/supernotify/snoozer.py Snoozer   165 9 0   95%
custom_components/supernotify/snoozer.py (no class)   69 0 6   100%
custom_components/supernotify/static_config.py (no class)   25 0 0   100%
custom_components/supernotify/switch.py Overridable   0 0 0   100%
custom_components/supernotify/switch.py OverrideStoredData   4 0 0   100%
custom_components/supernotify/switch.py SupernotifyOverridableSwitch   33 0 0   100%
custom_components/supernotify/switch.py SupernotifyScenarioSwitch   7 0 0   100%
custom_components/supernotify/switch.py SupernotifyRecipientSwitch   7 0 0   100%
custom_components/supernotify/switch.py SupernotifyDeliverySwitch   7 0 0   100%
custom_components/supernotify/switch.py SupernotifyTransportSwitch   16 0 0   100%
custom_components/supernotify/switch.py (no class)   87 0 9   100%
custom_components/supernotify/target.py TargetEntityCategory   9 0 0   100%
custom_components/supernotify/target.py Target   244 8 0   97%
custom_components/supernotify/target.py (no class)   86 0 4   100%
custom_components/supernotify/transport.py Transport   152 1 0   99%
custom_components/supernotify/transport.py (no class)   89 0 8   100%
custom_components/supernotify/transports/__init__.py (no class)   0 0 0   100%
custom_components/supernotify/transports/alexa_devices.py AlexaDevicesTransport   33 0 0   100%
custom_components/supernotify/transports/alexa_devices.py (no class)   30 0 3   100%
custom_components/supernotify/transports/alexa_media_player.py AlexaMediaPlayerTransport   102 0 0   100%
custom_components/supernotify/transports/alexa_media_player.py (no class)   50 0 3   100%
custom_components/supernotify/transports/chime.py ActionCall   0 0 0   100%
custom_components/supernotify/transports/chime.py ChimeTargetConfig   20 1 0   95%
custom_components/supernotify/transports/chime.py MiniChimeTransport   1 1 0   0%
custom_components/supernotify/transports/chime.py RestCommandChimeTransport   5 0 0   100%
custom_components/supernotify/transports/chime.py SwitchChimeTransport   1 0 0   100%
custom_components/supernotify/transports/chime.py SirenChimeTransport   8 0 0   100%
custom_components/supernotify/transports/chime.py ScriptChimeTransport   15 2 0   87%
custom_components/supernotify/transports/chime.py AlexaDevicesChimeTransport   2 0 0   100%
custom_components/supernotify/transports/chime.py MediaPlayerChimeTransport   9 0 0   100%
custom_components/supernotify/transports/chime.py ChimeTransport   96 3 0   97%
custom_components/supernotify/transports/chime.py (no class)   107 0 4   100%
custom_components/supernotify/transports/discord.py DiscordTransport   84 0 0   100%
custom_components/supernotify/transports/discord.py (no class)   29 0 2   100%
custom_components/supernotify/transports/email.py AlertServer   0 0 0   100%
custom_components/supernotify/transports/email.py AlertImage   0 0 0   100%
custom_components/supernotify/transports/email.py Alert   0 0 0   100%
custom_components/supernotify/transports/email.py EmailTransport   311 20 0   94%
custom_components/supernotify/transports/email.py (no class)   111 0 6   100%
custom_components/supernotify/transports/generic.py GenericTransport   113 0 0   100%
custom_components/supernotify/transports/generic.py MiniEnvelope   0 0 0   100%
custom_components/supernotify/transports/generic.py (no class)   123 2 4   98%
custom_components/supernotify/transports/gotify.py GotifyTransport   34 0 0   100%
custom_components/supernotify/transports/gotify.py (no class)   38 0 2   100%
custom_components/supernotify/transports/html5.py HTML5Transport   92 0 0   100%
custom_components/supernotify/transports/html5.py (no class)   30 0 3   100%
custom_components/supernotify/transports/kodi.py KodiTransport   50 3 0   94%
custom_components/supernotify/transports/kodi.py (no class)   44 0 3   100%
custom_components/supernotify/transports/lametric.py LaMetricTransport   54 0 0   100%
custom_components/supernotify/transports/lametric.py (no class)   31 0 3   100%
custom_components/supernotify/transports/matrix.py MatrixTransport   59 0 0   100%
custom_components/supernotify/transports/matrix.py (no class)   31 0 3   100%
custom_components/supernotify/transports/media_player.py MediaPlayerTransport   37 0 0   100%
custom_components/supernotify/transports/media_player.py (no class)   28 0 3   100%
custom_components/supernotify/transports/mobile_push.py MobilePushTransport   198 0 0   100%
custom_components/supernotify/transports/mobile_push.py (no class)   44 0 3   100%
custom_components/supernotify/transports/mqtt.py MQTTTransport   39 0 0   100%
custom_components/supernotify/transports/mqtt.py (no class)   26 0 3   100%
custom_components/supernotify/transports/notify_entity.py NotifyEntityTransport   16 0 0   100%
custom_components/supernotify/transports/notify_entity.py (no class)   25 0 3   100%
custom_components/supernotify/transports/ntfy.py NtfyTransport   67 6 0   91%
custom_components/supernotify/transports/ntfy.py (no class)   53 3 3   94%
custom_components/supernotify/transports/persistent.py PersistentTransport   13 0 0   100%
custom_components/supernotify/transports/persistent.py (no class)   18 0 3   100%
custom_components/supernotify/transports/pushover.py PushoverTransport   83 0 0   100%
custom_components/supernotify/transports/pushover.py (no class)   28 0 2   100%
custom_components/supernotify/transports/sms.py SMSTransport   34 0 0   100%
custom_components/supernotify/transports/sms.py (no class)   26 0 2   100%
custom_components/supernotify/transports/telegram.py TelegramTransport   95 0 0   100%
custom_components/supernotify/transports/telegram.py (no class)   87 0 3   100%
custom_components/supernotify/transports/tts.py TTSTransport   67 1 0   99%
custom_components/supernotify/transports/tts.py (no class)   35 0 3   100%
custom_components/supernotify/transports/webostv.py WebOsTvTransport   32 1 0   97%
custom_components/supernotify/transports/webostv.py (no class)   26 0 3   100%
Total     10391 262 225   97%

No items found using the specified filter.