Coverage report: 89%

Files Functions Classes

coverage.py v7.14.0, created at 2026-05-30 16:07 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src / anpr2mqtt / __init__.py (no function)   100% 4 0 0   100% 0 0   100%
src / anpr2mqtt / __main__.py (no function)   0% 3 3 0   0% 2 0   0%
src / anpr2mqtt / api_client.py APIClient.lookup   100% 1 0 0   100% 0 0   100%
src / anpr2mqtt / api_client.py DVLAClient.__init__   100% 21 0 0   100% 10 0   100%
src / anpr2mqtt / api_client.py DVLAClient.lookup   90% 20 2 0   88% 8 1   89%
src / anpr2mqtt / api_client.py (no function)   100% 18 0 2   100% 0 0   100%
src / anpr2mqtt / app.py on_connect   100% 7 0 0   100% 4 0   100%
src / anpr2mqtt / app.py on_disconnect   100% 3 0 0   100% 2 0   100%
src / anpr2mqtt / app.py main_loop   79% 95 20 0   71% 38 3   77%
src / anpr2mqtt / app.py Anpr2MQTT.cli_cmd   0% 1 1 0   100% 0 0   0%
src / anpr2mqtt / app.py run   0% 8 8 0   100% 0 0   0%
src / anpr2mqtt / app.py (no function)   100% 24 0 0   100% 0 0   100%
src / anpr2mqtt / const.py (no function)   100% 4 0 0   100% 0 0   100%
src / anpr2mqtt / event_handler.py EventHandler.__init__   100% 22 0 0   100% 4 0   100%
src / anpr2mqtt / event_handler.py EventHandler.ignore_directories   100% 1 0 0   100% 0 0   100%
src / anpr2mqtt / event_handler.py EventHandler.on_created   100% 4 0 0   100% 2 0   100%
src / anpr2mqtt / event_handler.py EventHandler.on_closed   89% 57 6 0   81% 26 5   87%
src / anpr2mqtt / event_handler.py EventHandler._schedule_autoclear   100% 1 0 0   100% 0 0   100%
src / anpr2mqtt / event_handler.py EventHandler._do_autoclear   100% 6 0 0   100% 4 0   100%
src / anpr2mqtt / event_handler.py process_image   92% 26 2 0   90% 10 1   92%
src / anpr2mqtt / event_handler.py examine_file   91% 23 2 0   88% 8 1   90%
src / anpr2mqtt / event_handler.py scan_ocr_fields   100% 56 0 0   96% 28 1   99%
src / anpr2mqtt / event_handler.py (no function)   100% 28 0 2   100% 0 0   100%
src / anpr2mqtt / frigate_handler.py FrigateHandler.__init__   100% 16 0 0   100% 0 0   100%
src / anpr2mqtt / frigate_handler.py FrigateHandler.start   70% 10 3 0   50% 6 1   62%
src / anpr2mqtt / frigate_handler.py FrigateHandler._on_snapshot_message   100% 6 0 0   100% 2 0   100%
src / anpr2mqtt / frigate_handler.py FrigateHandler._on_event_message   100% 4 0 0   100% 0 0   100%
src / anpr2mqtt / frigate_handler.py FrigateHandler._process_event   88% 95 11 0   79% 48 8   85%
src / anpr2mqtt / frigate_handler.py FrigateHandler._get_event_image   88% 17 2 0   100% 6 0   91%
src / anpr2mqtt / frigate_handler.py FrigateHandler._fetch_api_snapshot   100% 12 0 0   100% 2 0   100%
src / anpr2mqtt / frigate_handler.py FrigateHandler._resolve_camera_config   100% 10 0 0   100% 2 0   100%
src / anpr2mqtt / frigate_handler.py FrigateHandler._schedule_autoclear   100% 5 0 0   100% 4 0   100%
src / anpr2mqtt / frigate_handler.py FrigateHandler._do_autoclear   100% 7 0 0   100% 4 0   100%
src / anpr2mqtt / frigate_handler.py (no function)   100% 27 0 2   100% 0 0   100%
src / anpr2mqtt / handler_common.py build_dvla_client   80% 5 1 0   75% 4 1   78%
src / anpr2mqtt / handler_common.py correct_against_good_read   100% 14 0 0   100% 8 0   100%
src / anpr2mqtt / handler_common.py CameraGatekeeper.__init__   100% 3 0 0   100% 0 0   100%
src / anpr2mqtt / handler_common.py CameraGatekeeper.allow   29% 17 12 0   17% 6 1   26%
src / anpr2mqtt / handler_common.py AutoclearTimer.__init__   100% 2 0 0   100% 0 0   100%
src / anpr2mqtt / handler_common.py AutoclearTimer.schedule   100% 10 0 0   100% 4 0   100%
src / anpr2mqtt / handler_common.py (no function)   100% 16 0 0   100% 0 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.__init__   100% 6 0 0   100% 0 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.start   100% 5 0 0   100% 0 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.on_subscribe   100% 1 0 0   100% 0 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.on_unsubscribe   100% 1 0 0   100% 0 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.on_message   100% 14 0 0   100% 8 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.republish_discovery   100% 5 0 0   100% 2 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.publish_sensor_discovery   100% 11 0 0   75% 4 1   93%
src / anpr2mqtt / hass.py HomeAssistantPublisher.publish_image_discovery   100% 9 0 0   100% 2 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.publish_camera_discovery   100% 9 0 0   100% 2 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.publish_target_sensor_discovery   0% 8 8 0   0% 2 0   0%
src / anpr2mqtt / hass.py HomeAssistantPublisher.publish_target_state   0% 9 9 0   0% 2 0   0%
src / anpr2mqtt / hass.py HomeAssistantPublisher.add_device_info   100% 3 0 0   100% 2 0   100%
src / anpr2mqtt / hass.py HomeAssistantPublisher.post_state_message   92% 26 2 0   89% 18 2   91%
src / anpr2mqtt / hass.py HomeAssistantPublisher.post_image_message   100% 12 0 0   100% 2 0   100%
src / anpr2mqtt / hass.py (no function)   100% 31 0 0   100% 0 0   100%
src / anpr2mqtt / normalizers.py RegionRules.length   100% 1 0 0   100% 0 0   100%
src / anpr2mqtt / normalizers.py Normalizer.__init__   100% 3 0 0   100% 0 0   100%
src / anpr2mqtt / normalizers.py Normalizer._digit_swapped   100% 14 0 0   100% 10 0   100%
src / anpr2mqtt / normalizers.py Normalizer.normalize   100% 7 0 0   100% 6 0   100%
src / anpr2mqtt / normalizers.py fuzzy_match   100% 8 0 0   100% 4 0   100%
src / anpr2mqtt / normalizers.py (no function)   100% 16 0 0   100% 0 0   100%
src / anpr2mqtt / settings.py EventSettings.validate_image_url_base   67% 3 1 0   50% 2 1   60%
src / anpr2mqtt / settings.py EventSettings.validate_image_name_re   100% 5 0 0   100% 2 0   100%
src / anpr2mqtt / settings.py Target.as_dict   75% 4 1 0   50% 2 1   67%
src / anpr2mqtt / settings.py TargetGroup.coerce_member_strings   67% 3 1 0   50% 2 1   60%
src / anpr2mqtt / settings.py TargetGroup.apply_group_defaults   100% 13 0 0   100% 12 0   100%
src / anpr2mqtt / settings.py Settings.migrate_and_inject_target_type   87% 30 4 0   85% 26 4   86%
src / anpr2mqtt / settings.py Settings.settings_customise_sources   0% 1 1 0   100% 0 0   0%
src / anpr2mqtt / settings.py (no function)   100% 135 0 0   100% 0 0   100%
src / anpr2mqtt / tools.py OCRTool.cli_cmd   100% 10 0 0   100% 4 0   100%
src / anpr2mqtt / tools.py ListTool.cli_cmd   100% 6 0 0   100% 4 0   100%
src / anpr2mqtt / tools.py DVLATool.cli_cmd   0% 8 8 0   0% 2 0   0%
src / anpr2mqtt / tools.py Tools.cli_cmd   0% 1 1 0   100% 0 0   0%
src / anpr2mqtt / tools.py tools   0% 1 1 0   100% 0 0   0%
src / anpr2mqtt / tools.py (no function)   100% 29 0 2   100% 0 0   100%
src / anpr2mqtt / tracker.py Sighting.as_dict   100% 3 0 0   100% 0 0   100%
src / anpr2mqtt / tracker.py Tracker.__init__   100% 11 0 0   100% 2 0   100%
src / anpr2mqtt / tracker.py Tracker.target_config   100% 1 0 0   100% 0 0   100%
src / anpr2mqtt / tracker.py Tracker.target_config   82% 11 2 0   88% 8 1   84%
src / anpr2mqtt / tracker.py Tracker.history   100% 11 0 0   100% 2 0   100%
src / anpr2mqtt / tracker.py Tracker.record   81% 31 6 0   75% 8 2   79%
src / anpr2mqtt / tracker.py Tracker.find   100% 41 0 0   86% 28 4   94%
src / anpr2mqtt / tracker.py compute_time_analysis   100% 20 0 0   100% 6 0   100%
src / anpr2mqtt / tracker.py (no function)   100% 26 0 0   100% 0 0   100%
Total     91% 1312 118 8   85% 416 40   89%

No items found using the specified filter.