Coverage report: 96%

Files Functions Classes

coverage.py v7.16.2, created at 2026-10-26 20:57 +0000

File function   statements missing excluded   coverage
custom_components/autoarm/__init__.py (no function)   2 0 0   100%
custom_components/autoarm/autoarming.py _check_yaml_notify_deprecated   4 0 0   100%
custom_components/autoarm/autoarming.py async_setup   20 0 0   100%
custom_components/autoarm/autoarming.py async_setup.reload_service_handler   12 3 0   75%
custom_components/autoarm/autoarming.py async_setup.supplemental_action_enquire_configuration   11 3 0   73%
custom_components/autoarm/autoarming.py async_setup.reset_service   6 0 0   100%
custom_components/autoarm/autoarming.py async_setup_entry   22 0 0   100%
custom_components/autoarm/autoarming.py async_migrate_entry   10 1 0   90%
custom_components/autoarm/autoarming.py async_unload_entry   3 0 0   100%
custom_components/autoarm/autoarming.py _async_update_listener   1 0 0   100%
custom_components/autoarm/autoarming.py _build_armer_from_entry   23 0 0   100%
custom_components/autoarm/autoarming.py _build_armer_from_entry._parse_time   4 0 0   100%
custom_components/autoarm/autoarming.py _frigate_profile_entity   11 0 0   100%
custom_components/autoarm/autoarming.py _buttons_from_options   7 0 0   100%
custom_components/autoarm/autoarming.py _migrate_yaml_buttons   10 0 0   100%
custom_components/autoarm/autoarming.py _migrate_yaml_delays_and_rate_limit   11 0 0   100%
custom_components/autoarm/autoarming.py _migrate_yaml_calendar_control   15 0 0   100%
custom_components/autoarm/autoarming.py _pattern_strings   1 0 0   100%
custom_components/autoarm/autoarming.py _calendar_state_patterns   5 0 0   100%
custom_components/autoarm/autoarming.py _rate_limit_from_options   1 0 0   100%
custom_components/autoarm/autoarming.py _validated_default_calendar_mappings   8 0 0   100%
custom_components/autoarm/autoarming.py migrate   7 4 0   43%
custom_components/autoarm/autoarming.py unlisten   5 2 0   60%
custom_components/autoarm/autoarming.py Intervention.as_dict   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.__init__   59 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize   22 2 0   91%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_home_assistant   2 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_integration   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_alarm_panel   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_frigate   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.check_panel_code   7 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.panel_default_code   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_housekeeping   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_diurnal   6 2 0   67%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_occupancy   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_buttons   7 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_buttons.setup_button   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_calendar   18 4 0   78%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_time_of_day   5 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.initialize_logic   43 16 0   63%
custom_components/autoarm/autoarming.py AlarmArmer.async_shutdown   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.shutdown   12 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer._debounce_calendar_notification   7 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer._debounce_calendar_notification._fire   7 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.active_calendar_event   6 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.has_active_calendar_event   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.occupancy_ends_calendar_event   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.active_time_of_day   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.is_bedtime   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.after_bedtime   6 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.time_of_day_state   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.resume_time_of_day   5 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.has_diurnal_calendar_event_today   5 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.sun_trigger_active   6 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.armed_night_programmed   7 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.calendar_end_mode   8 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.last_calendar_event_ended_today   6 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.occupancy_end_state   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.is_occupied   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.at_home   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.not_home   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.is_unoccupied   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.is_sun_down   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.is_night   9 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer._has_sunset_passed_today   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer._has_sunrise_occurred_today   1 1 0   0%
custom_components/autoarm/autoarming.py AlarmArmer.armed_state   1 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.panel_state   6 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.current_state   6 6 0   0%
custom_components/autoarm/autoarming.py AlarmArmer._extract_event   11 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.delayed_reset_armed_state   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.reset_armed_state   74 1 0   99%
custom_components/autoarm/autoarming.py AlarmArmer.is_intervention_since_request   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.determine_state   12 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.delayed_arm   5 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.pending_arm_state   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.arm   56 9 0   84%
custom_components/autoarm/autoarming.py AlarmArmer.schedule_state   9 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.cause   5 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.record_intervention   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.publish_status   2 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.has_intervention_since   3 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.last_state_intervention   4 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.on_sunrise   9 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.on_sunrise_latest   5 2 0   60%
custom_components/autoarm/autoarming.py AlarmArmer.on_sunset   9 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.on_sunset_latest   5 2 0   60%
custom_components/autoarm/autoarming.py AlarmArmer.on_mobile_action   14 3 0   79%
custom_components/autoarm/autoarming.py AlarmArmer.is_button_press   5 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.on_alarm_state_button   10 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.on_reset_button   17 3 0   82%
custom_components/autoarm/autoarming.py AlarmArmer.on_occupancy_change   15 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.on_panel_change   27 0 0   100%
custom_components/autoarm/autoarming.py AlarmArmer.housekeeping   7 0 0   100%
custom_components/autoarm/autoarming.py (no function)   148 0 3   100%
custom_components/autoarm/binary_sensor.py async_setup_entry   1 0 0   100%
custom_components/autoarm/binary_sensor.py AutoArmInitializedSensor.__init__   1 0 0   100%
custom_components/autoarm/binary_sensor.py AutoArmInitializedSensor.is_on   2 0 0   100%
custom_components/autoarm/binary_sensor.py AutoArmInitializedSensor.extra_state_attributes   1 0 0   100%
custom_components/autoarm/binary_sensor.py (no function)   16 0 0   100%
custom_components/autoarm/calendar_events.py unlisten   5 2 0   60%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.__init__   12 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.initialize   10 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.end   6 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.end_early   2 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.update   5 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.remove   5 2 0   60%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.on_calendar_event_start   20 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.on_calendar_event_end   22 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.event_id   2 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.is_current   4 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.is_recurring   1 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.ends_today   2 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.is_future   4 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.shutdown   4 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendarEvent.__eq__   3 3 0   0%
custom_components/autoarm/calendar_events.py TrackedCalendar.__init__   12 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendar.initialize   14 3 0   79%
custom_components/autoarm/calendar_events.py TrackedCalendar.shutdown   8 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendar.on_timed_poll   4 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendar.on_calendar_state_change   2 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendar.has_active_event   1 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendar.active_events   1 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendar.has_event_on_day   6 1 0   83%
custom_components/autoarm/calendar_events.py TrackedCalendar.last_event_ended_today   10 1 0   90%
custom_components/autoarm/calendar_events.py TrackedCalendar.match_event   9 0 0   100%
custom_components/autoarm/calendar_events.py TrackedCalendar.match_events   26 1 0   96%
custom_components/autoarm/calendar_events.py TrackedCalendar.prune_events   23 0 0   100%
custom_components/autoarm/calendar_events.py (no function)   48 0 2   100%
custom_components/autoarm/compat.py (no function)   3 0 2   100%
custom_components/autoarm/config_flow.py notify_priority_option   1 0 0   100%
custom_components/autoarm/config_flow.py button_option   1 0 0   100%
custom_components/autoarm/config_flow.py button_delay_option   1 0 0   100%
custom_components/autoarm/config_flow.py _time_to_str   1 0 0   100%
custom_components/autoarm/config_flow.py _top_level_fields   2 0 0   100%
custom_components/autoarm/config_flow.py _frigate_available   1 0 0   100%
custom_components/autoarm/config_flow.py _default_notify_action   1 0 0   100%
custom_components/autoarm/config_flow.py _section_fields   7 0 0   100%
custom_components/autoarm/config_flow.py _frigate_section   5 0 0   100%
custom_components/autoarm/config_flow.py _matchable_profiles   1 0 0   100%
custom_components/autoarm/config_flow.py _settle_frigate_profiles   7 0 0   100%
custom_components/autoarm/config_flow.py _flatten_sections   5 0 0   100%
custom_components/autoarm/config_flow.py _pattern_errors   7 0 0   100%
custom_components/autoarm/config_flow.py _protect_panel_code   6 0 0   100%
custom_components/autoarm/config_flow.py AutoArmConfigFlow.async_step_user   3 0 0   100%
custom_components/autoarm/config_flow.py AutoArmConfigFlow.async_step_quick_setup   5 0 0   100%
custom_components/autoarm/config_flow.py AutoArmConfigFlow.async_step_advanced_setup   12 0 0   100%
custom_components/autoarm/config_flow.py AutoArmConfigFlow.async_step_import   18 0 0   100%
custom_components/autoarm/config_flow.py AutoArmConfigFlow.async_get_options_flow   1 0 0   100%
custom_components/autoarm/config_flow.py AutoArmOptionsFlow.async_step_init   16 0 0   100%
custom_components/autoarm/config_flow.py _seconds_selector   1 0 0   100%
custom_components/autoarm/config_flow.py _alarm_state_selector   1 0 0   100%
custom_components/autoarm/config_flow.py _time_of_day_selector   1 0 0   100%
custom_components/autoarm/config_flow.py _sun_trigger_selector   1 0 0   100%
custom_components/autoarm/config_flow.py _calendar_end_mode_selector   1 0 0   100%
custom_components/autoarm/config_flow.py (no function)   107 0 0   100%
custom_components/autoarm/const.py _apply_notify_defaults   16 1 0   94%
custom_components/autoarm/const.py ConditionVariables.as_dict   1 0 0   100%
custom_components/autoarm/const.py (no function)   115 0 0   100%
custom_components/autoarm/crypto.py _cipher   2 0 0   100%
custom_components/autoarm/crypto.py async_encrypt   1 0 0   100%
custom_components/autoarm/crypto.py async_decrypt   5 0 0   100%
custom_components/autoarm/crypto.py (no function)   11 0 0   100%
custom_components/autoarm/diagnostics.py async_get_config_entry_diagnostics   5 0 0   100%
custom_components/autoarm/diagnostics.py (no function)   7 0 0   100%
custom_components/autoarm/entity.py AutoArmEntity.__init__   5 0 0   100%
custom_components/autoarm/entity.py AutoArmEntity.async_added_to_hass   1 0 0   100%
custom_components/autoarm/entity.py AutoArmEntity._on_status_updated   3 0 0   100%
custom_components/autoarm/entity.py (no function)   13 0 0   100%
custom_components/autoarm/frigate.py match_profile   2 0 0   100%
custom_components/autoarm/frigate.py frigate_profile_selects   1 0 0   100%
custom_components/autoarm/frigate.py frigate_profiles   2 0 0   100%
custom_components/autoarm/frigate.py async_track_frigate_profile   7 0 0   100%
custom_components/autoarm/frigate.py async_track_frigate_profile.sync   19 0 0   100%
custom_components/autoarm/frigate.py async_track_frigate_profile.on_panel_change   1 0 0   100%
custom_components/autoarm/frigate.py async_track_frigate_profile.on_select_change   3 0 0   100%
custom_components/autoarm/frigate.py async_track_frigate_profile.unsubscribe   2 0 0   100%
custom_components/autoarm/frigate.py (no function)   17 0 0   100%
custom_components/autoarm/hass_api.py HomeAssistantAPI.__init__   1 0 0   100%
custom_components/autoarm/hass_api.py HomeAssistantAPI.raise_issue   3 0 0   100%
custom_components/autoarm/hass_api.py HomeAssistantAPI.build_condition   28 4 0   86%
custom_components/autoarm/hass_api.py HomeAssistantAPI.evaluate_condition   7 0 0   100%
custom_components/autoarm/hass_api.py HomeAssistantAPI.fire_event   3 0 0   100%
custom_components/autoarm/hass_api.py ConditionErrorLoggingAdaptor.__init__   2 0 0   100%
custom_components/autoarm/hass_api.py ConditionErrorLoggingAdaptor.capture   6 0 0   100%
custom_components/autoarm/hass_api.py ConditionErrorLoggingAdaptor.error   2 0 0   100%
custom_components/autoarm/hass_api.py ConditionErrorLoggingAdaptor.warning   2 0 0   100%
custom_components/autoarm/hass_api.py force_strict_template_mode   7 0 0   100%
custom_components/autoarm/hass_api.py force_strict_template_mode.TemplateWrapper.__init__   1 0 0   100%
custom_components/autoarm/hass_api.py force_strict_template_mode.TemplateWrapper.__getattr__   3 1 0   67%
custom_components/autoarm/hass_api.py force_strict_template_mode.TemplateWrapper.__setattr__   1 0 0   100%
custom_components/autoarm/hass_api.py force_strict_template_mode.wrap_template   8 2 0   75%
custom_components/autoarm/hass_api.py (no function)   22 0 4   100%
custom_components/autoarm/helpers.py friendly_state   1 0 0   100%
custom_components/autoarm/helpers.py alarm_state_as_enum   7 0 0   100%
custom_components/autoarm/helpers.py change_source_as_enum   7 0 0   100%
custom_components/autoarm/helpers.py child_context   3 1 0   67%
custom_components/autoarm/helpers.py safe_state   5 0 0   100%
custom_components/autoarm/helpers.py Limiter.__init__   4 0 0   100%
custom_components/autoarm/helpers.py Limiter.triggered   8 0 0   100%
custom_components/autoarm/helpers.py deobjectify   8 0 0   100%
custom_components/autoarm/helpers.py AppHealthTracker.__init__   4 0 0   100%
custom_components/autoarm/helpers.py AppHealthTracker.app_initialized   2 0 0   100%
custom_components/autoarm/helpers.py AppHealthTracker.record_initialization_error   4 0 0   100%
custom_components/autoarm/helpers.py AppHealthTracker.record_runtime_error   2 0 0   100%
custom_components/autoarm/helpers.py ExtendedExtendedJSONEncoder.default   8 0 0   100%
custom_components/autoarm/helpers.py (no function)   27 0 2   100%
custom_components/autoarm/logbook.py async_describe_events   3 0 0   100%
custom_components/autoarm/logbook.py async_describe_events.async_describe_triggered   10 0 0   100%
custom_components/autoarm/logbook.py (no function)   9 0 0   100%
custom_components/autoarm/notifier.py Notifier.__init__   11 0 0   100%
custom_components/autoarm/notifier.py Notifier._mobile_actions   9 0 0   100%
custom_components/autoarm/notifier.py Notifier.notify   100 1 0   99%
custom_components/autoarm/notifier.py (no function)   14 0 0   100%
custom_components/autoarm/sensor.py _status_value   1 0 0   100%
custom_components/autoarm/sensor.py _status_attributes   1 0 0   100%
custom_components/autoarm/sensor.py async_setup_entry   1 0 0   100%
custom_components/autoarm/sensor.py AutoArmSensor.__init__   1 0 0   100%
custom_components/autoarm/sensor.py AutoArmSensor.native_value   1 0 0   100%
custom_components/autoarm/sensor.py AutoArmSensor.extra_state_attributes   1 0 0   100%
custom_components/autoarm/sensor.py (no function)   25 0 0   100%
custom_components/autoarm/sentences.py async_register_sentences   10 0 0   100%
custom_components/autoarm/sentences.py async_register_sentences.action   3 0 0   100%
custom_components/autoarm/sentences.py _log   1 1 0   0%
custom_components/autoarm/sentences.py _requester   2 0 0   100%
custom_components/autoarm/sentences.py async_respond   16 0 0   100%
custom_components/autoarm/sentences.py explain   18 0 0   100%
custom_components/autoarm/sentences.py _say   1 0 0   100%
custom_components/autoarm/sentences.py _when   4 0 0   100%
custom_components/autoarm/sentences.py _reason   8 0 0   100%
custom_components/autoarm/sentences.py _situation   5 0 0   100%
custom_components/autoarm/sentences.py (no function)   28 0 2   100%
custom_components/autoarm/supernotify_api.py supernotify_available   1 0 0   100%
custom_components/autoarm/supernotify_api.py _enquire   5 0 0   100%
custom_components/autoarm/supernotify_api.py deliveries   5 0 0   100%
custom_components/autoarm/supernotify_api.py (no function)   8 0 0   100%
custom_components/autoarm/time_of_day.py TrackedTimeOfDay.__init__   9 0 0   100%
custom_components/autoarm/time_of_day.py TrackedTimeOfDay.initialize   6 0 0   100%
custom_components/autoarm/time_of_day.py TrackedTimeOfDay.shutdown   3 0 0   100%
custom_components/autoarm/time_of_day.py TrackedTimeOfDay.on_sensor_change   10 0 0   100%
custom_components/autoarm/time_of_day.py TrackedTimeOfDay.start   7 0 0   100%
custom_components/autoarm/time_of_day.py TrackedTimeOfDay.end   26 5 0   81%
custom_components/autoarm/time_of_day.py (no function)   19 0 0   100%
Total     2299 93 15   96%

No items found using the specified filter.