Coverage report: 93%

Files Functions Classes

coverage.py v7.9.1, created at 2025-06-28 08:08 +0000

File function statements missing excluded branches partial coverage
src/actuator.py sig_handler 4 0 0 2 0 100%
src/actuator.py wait_before_start 3 0 0 2 0 100%
src/actuator.py start 24 0 0 4 0 100%
src/actuator.py wait_and_term 15 0 0 4 0 100%
src/actuator.py (no function) 11 0 17 0 0 100%
src/controller.py test_client 2 2 0 0 0 0%
src/controller.py cache_proxy_start 3 0 0 0 0 100%
src/controller.py gen_control_msg 3 0 0 0 0 100%
src/controller.py control_server_start 3 0 0 0 0 100%
src/controller.py start 16 0 0 4 0 100%
src/controller.py wait_and_term 6 0 0 4 0 100%
src/controller.py (no function) 17 0 17 0 0 100%
src/healthz.py check_liveness 6 6 0 6 0 0%
src/healthz.py (no function) 6 6 28 0 0 0%
src/unit_cooler/actuator/api/__init__.py (no function) 0 0 0 0 0 100%
src/unit_cooler/actuator/api/flow_status.py get_flow 3 0 0 0 0 100%
src/unit_cooler/actuator/api/flow_status.py (no function) 8 0 0 0 0 100%
src/unit_cooler/actuator/api/valve_status.py get_valve_status 3 0 0 0 0 100%
src/unit_cooler/actuator/api/valve_status.py (no function) 9 0 0 0 0 100%
src/unit_cooler/actuator/control.py gen_handle 1 0 0 0 0 100%
src/unit_cooler/actuator/control.py hazard_register 1 0 0 0 0 100%
src/unit_cooler/actuator/control.py hazard_clear 1 0 0 0 0 100%
src/unit_cooler/actuator/control.py hazard_notify 4 0 0 2 0 100%
src/unit_cooler/actuator/control.py hazard_check 4 0 0 2 0 100%
src/unit_cooler/actuator/control.py get_control_message_impl 15 0 0 10 2 92%
src/unit_cooler/actuator/control.py get_control_message 2 0 3 0 0 100%
src/unit_cooler/actuator/control.py execute 3 0 0 2 0 100%
src/unit_cooler/actuator/control.py (no function) 15 0 0 0 0 100%
src/unit_cooler/actuator/log_server.py create_app 23 0 0 0 0 100%
src/unit_cooler/actuator/log_server.py start 5 0 0 0 0 100%
src/unit_cooler/actuator/log_server.py term 7 0 0 0 0 100%
src/unit_cooler/actuator/log_server.py (no function) 8 0 13 0 0 100%
src/unit_cooler/actuator/monitor.py init 1 0 0 0 0 100%
src/unit_cooler/actuator/monitor.py gen_handle 1 0 0 0 0 100%
src/unit_cooler/actuator/monitor.py send_mist_condition 11 0 0 8 1 95%
src/unit_cooler/actuator/monitor.py get_mist_condition 7 0 0 2 0 100%
src/unit_cooler/actuator/monitor.py hazard_notify 6 0 0 2 0 100%
src/unit_cooler/actuator/monitor.py check_sensing 8 0 0 6 0 100%
src/unit_cooler/actuator/monitor.py check_mist_condition 14 0 0 14 1 96%
src/unit_cooler/actuator/monitor.py check 7 0 0 4 0 100%
src/unit_cooler/actuator/monitor.py (no function) 20 0 0 0 0 100%
src/unit_cooler/actuator/sensor.py init 2 0 0 0 0 100%
src/unit_cooler/actuator/sensor.py stop 5 2 0 0 0 60%
src/unit_cooler/actuator/sensor.py get_power_state 1 1 0 0 0 0%
src/unit_cooler/actuator/sensor.py get_flow 9 0 0 2 0 100%
src/unit_cooler/actuator/sensor.py (no function) 31 3 2 4 2 86%
src/unit_cooler/actuator/valve.py init 8 0 0 0 0 100%
src/unit_cooler/actuator/valve.py clear_stat 5 0 0 0 0 100%
src/unit_cooler/actuator/valve.py get_hist 1 1 0 0 0 0%
src/unit_cooler/actuator/valve.py set_state 16 0 0 10 1 96%
src/unit_cooler/actuator/valve.py get_state 3 0 0 2 0 100%
src/unit_cooler/actuator/valve.py get_status 8 1 0 4 1 83%
src/unit_cooler/actuator/valve.py set_cooling_working 24 0 0 10 0 100%
src/unit_cooler/actuator/valve.py set_cooling_idle 8 0 0 2 0 100%
src/unit_cooler/actuator/valve.py set_cooling_state 3 0 0 2 0 100%
src/unit_cooler/actuator/valve.py (no function) 25 0 19 0 0 100%
src/unit_cooler/actuator/work_log.py init 2 0 0 0 0 100%
src/unit_cooler/actuator/work_log.py term 1 0 0 0 0 100%
src/unit_cooler/actuator/work_log.py hist_clear 1 0 0 0 0 100%
src/unit_cooler/actuator/work_log.py hist_get 1 0 0 0 0 100%
src/unit_cooler/actuator/work_log.py add 5 0 0 2 0 100%
src/unit_cooler/actuator/work_log.py (no function) 13 0 21 0 0 100%
src/unit_cooler/actuator/worker.py get_last_control_message 3 0 0 2 0 100%
src/unit_cooler/actuator/worker.py set_last_control_message 1 0 0 0 0 100%
src/unit_cooler/actuator/worker.py queue_put 4 0 0 0 0 100%
src/unit_cooler/actuator/worker.py sleep_until_next_iter 3 0 0 0 0 100%
src/unit_cooler/actuator/worker.py subscribe_worker 10 0 0 0 0 100%
src/unit_cooler/actuator/worker.py monitor_worker 33 0 0 6 1 97%
src/unit_cooler/actuator/worker.py control_worker 28 0 0 8 1 97%
src/unit_cooler/actuator/worker.py get_worker_def 1 0 0 0 0 100%
src/unit_cooler/actuator/worker.py start 6 0 0 2 0 100%
src/unit_cooler/actuator/worker.py term 1 0 0 0 0 100%
src/unit_cooler/actuator/worker.py (no function) 24 0 37 0 0 100%
src/unit_cooler/const.py (no function) 18 0 0 0 0 100%
src/unit_cooler/controller/engine.py dummy_cooling_mode 19 0 0 12 0 100%
src/unit_cooler/controller/engine.py judge_cooling_mode 18 0 0 6 0 100%
src/unit_cooler/controller/engine.py gen_control_msg 9 0 0 2 0 100%
src/unit_cooler/controller/engine.py (no function) 12 0 11 0 0 100%
src/unit_cooler/controller/message.py print_control_msg 8 8 0 4 0 0%
src/unit_cooler/controller/message.py (no function) 4 0 9 0 0 100%
src/unit_cooler/controller/sensor.py get_outdoor_status 9 1 0 4 2 77%
src/unit_cooler/controller/sensor.py get_cooler_activity 11 0 1 6 0 100%
src/unit_cooler/controller/sensor.py get_cooler_state 15 0 0 12 0 100%
src/unit_cooler/controller/sensor.py get_sense_data 20 0 0 10 0 100%
src/unit_cooler/controller/sensor.py (no function) 26 0 14 0 0 100%
src/unit_cooler/pubsub/publish.py wait_first_client 14 0 0 6 1 95%
src/unit_cooler/pubsub/publish.py start_server 34 0 0 8 2 95%
src/unit_cooler/pubsub/publish.py start_proxy 49 0 4 14 2 97%
src/unit_cooler/pubsub/publish.py (no function) 8 0 28 0 0 100%
src/unit_cooler/pubsub/subscribe.py start_client 30 2 0 6 2 89%
src/unit_cooler/pubsub/subscribe.py (no function) 5 0 0 0 0 100%
src/unit_cooler/util.py notify_error 8 1 0 4 2 75%
src/unit_cooler/util.py (no function) 4 0 0 0 0 100%
src/unit_cooler/webui/api/__init__.py (no function) 0 0 0 0 0 100%
src/unit_cooler/webui/api/cooler_stat.py init 1 0 0 0 0 100%
src/unit_cooler/webui/api/cooler_stat.py watering 3 0 0 0 0 100%
src/unit_cooler/webui/api/cooler_stat.py watering_list 1 0 0 0 0 100%
src/unit_cooler/webui/api/cooler_stat.py get_last_message 3 0 0 2 0 100%
src/unit_cooler/webui/api/cooler_stat.py get_stats 2 0 0 0 0 100%
src/unit_cooler/webui/api/cooler_stat.py api_get_stats 3 0 0 0 0 100%
src/unit_cooler/webui/api/cooler_stat.py (no function) 18 0 11 0 0 100%
src/unit_cooler/webui/worker.py term 2 2 0 0 0 0%
src/unit_cooler/webui/worker.py queue_put 6 0 0 2 0 100%
src/unit_cooler/webui/worker.py subscribe_worker 10 4 0 0 0 60%
src/unit_cooler/webui/worker.py (no function) 10 0 0 0 0 100%
src/webui.py signal_handler 10 10 0 4 0 0%
src/webui.py create_app 37 4 6 0 0 89%
src/webui.py create_app.notify_terminate 0 0 8 0 0 100%
src/webui.py (no function) 14 0 25 0 0 100%
Total   1033 54 274 236 21 93%

No items found using the specified filter.