Coverage report: 70%

Files Functions Classes

coverage.py v7.13.1, created at 2026-01-31 11:45 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src / server_list / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
src / server_list / __main__.py (no function)   100% 1 0 2   100% 0 0   100%
src / server_list / cli / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
src / server_list / cli / webui.py term   0% 3 3 0   100% 0 0   0%
src / server_list / cli / webui.py sig_handler   0% 3 3 0   0% 2 0   0%
src / server_list / cli / webui.py create_app   97% 36 1 0   50% 4 2   92%
src / server_list / cli / webui.py create_app.get_base_url   100% 1 0 0   100% 0 0   100%
src / server_list / cli / webui.py create_app.serve_html_with_ogp   56% 9 4 0   50% 4 2   54%
src / server_list / cli / webui.py create_app.index_with_ogp   0% 2 2 0   100% 0 0   0%
src / server_list / cli / webui.py create_app.machine_page_with_ogp   100% 3 0 0   100% 0 0   100%
src / server_list / cli / webui.py create_app.ups_page   0% 1 1 0   100% 0 0   0%
src / server_list / cli / webui.py create_app.serve_image   100% 1 0 0   100% 0 0   100%
src / server_list / cli / webui.py main   77% 35 8 0   50% 2 1   76%
src / server_list / cli / webui.py (no function)   100% 29 0 4   100% 0 0   100%
src / server_list / config.py StorageConfig.parse   100% 1 0 0   100% 0 0   100%
src / server_list / config.py VmConfig.parse   0% 1 1 0   100% 0 0   0%
src / server_list / config.py MountConfig.parse   0% 3 3 0   100% 0 0   0%
src / server_list / config.py MachineConfig.parse   100% 6 0 0   100% 0 0   100%
src / server_list / config.py MachineConfig.to_dict   71% 14 4 0   50% 12 6   62%
src / server_list / config.py WebappConfig.parse   100% 1 0 0   100% 0 0   100%
src / server_list / config.py WebappConfig.get_static_dir   0% 4 4 0   0% 2 0   0%
src / server_list / config.py WebappConfig.get_image_dir   0% 4 4 0   0% 2 0   0%
src / server_list / config.py DataConfig.parse   100% 1 0 0   100% 0 0   100%
src / server_list / config.py DataConfig.get_cache_dir   0% 4 4 0   0% 2 0   0%
src / server_list / config.py Config.parse   100% 4 0 0   100% 0 0   100%
src / server_list / config.py Config.load   100% 3 0 0   100% 0 0   100%
src / server_list / config.py Config.get_machine_by_name   0% 4 4 0   0% 4 0   0%
src / server_list / config.py Config.get_esxi_hosts   0% 1 1 0   100% 0 0   0%
src / server_list / config.py Config.is_esxi_host   0% 2 2 0   100% 0 0   0%
src / server_list / config.py Config.to_dict   100% 1 0 0   100% 0 0   100%
src / server_list / config.py (no function)   100% 64 0 0   100% 0 0   100%
src / server_list / spec / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
src / server_list / spec / cache_manager.py init_db   100% 3 0 0   100% 0 0   100%
src / server_list / spec / cache_manager.py _get_cache   100% 10 0 0   100% 2 0   100%
src / server_list / spec / cache_manager.py _set_cache   100% 7 0 0   100% 0 0   100%
src / server_list / spec / cache_manager.py _get_cache_state   0% 8 8 0   100% 0 0   0%
src / server_list / spec / cache_manager.py load_config_from_file   100% 13 0 0   100% 4 0   100%
src / server_list / spec / cache_manager.py get_config   100% 7 0 0   75% 4 1   91%
src / server_list / spec / cache_manager.py update_all_caches   100% 11 0 0   100% 6 0   100%
src / server_list / spec / cache_manager.py _update_worker   80% 5 1 0   50% 2 1   71%
src / server_list / spec / cache_manager.py start_cache_worker   100% 8 0 0   100% 2 0   100%
src / server_list / spec / cache_manager.py stop_cache_worker   100% 7 0 0   50% 4 2   82%
src / server_list / spec / cache_manager.py (no function)   100% 27 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py BenchmarkCache.__init__   100% 4 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py BenchmarkCache.get   38% 8 5 0   25% 4 1   33%
src / server_list / spec / cpu_benchmark.py BenchmarkCache.set   100% 3 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py BenchmarkCache.invalidate   71% 7 2 0   75% 4 1   73%
src / server_list / spec / cpu_benchmark.py BackgroundFetchQueue.__init__   100% 2 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py BackgroundFetchQueue.is_pending   0% 2 2 0   100% 0 0   0%
src / server_list / spec / cpu_benchmark.py BackgroundFetchQueue.add   0% 5 5 0   0% 2 0   0%
src / server_list / spec / cpu_benchmark.py BackgroundFetchQueue.remove   0% 2 2 0   100% 0 0   0%
src / server_list / spec / cpu_benchmark.py queue_background_fetch   0% 8 8 0   0% 2 0   0%
src / server_list / spec / cpu_benchmark.py queue_background_fetch._fetch_task   0% 9 9 0   0% 2 0   0%
src / server_list / spec / cpu_benchmark.py queue_background_fetch_batch   0% 5 5 0   0% 4 0   0%
src / server_list / spec / cpu_benchmark.py is_fetch_pending   0% 1 1 0   100% 0 0   0%
src / server_list / spec / cpu_benchmark.py init_db   100% 3 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py extract_model_number   100% 6 0 0   100% 4 0   100%
src / server_list / spec / cpu_benchmark.py normalize_cpu_name   100% 5 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py _match_by_model_number   100% 14 0 0   90% 10 1   96%
src / server_list / spec / cpu_benchmark.py _match_xeon_e5   85% 13 2 0   75% 8 2   81%
src / server_list / spec / cpu_benchmark.py _match_core_i   86% 7 1 0   75% 4 1   82%
src / server_list / spec / cpu_benchmark.py _match_by_word_overlap   100% 6 0 0   100% 2 0   100%
src / server_list / spec / cpu_benchmark.py calculate_match_score   100% 11 0 0   100% 8 0   100%
src / server_list / spec / cpu_benchmark.py _extract_benchmark_score_from_chart_entry   71% 7 2 0   100% 2 0   78%
src / server_list / spec / cpu_benchmark.py _extract_benchmark_score_from_table_cell   100% 4 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py search_chart_page   100% 25 0 0   100% 8 0   100%
src / server_list / spec / cpu_benchmark.py search_cpu_list   97% 33 1 0   93% 14 1   96%
src / server_list / spec / cpu_benchmark.py search_cpu_benchmark   100% 9 0 0   100% 4 0   100%
src / server_list / spec / cpu_benchmark.py save_benchmark   100% 5 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py get_benchmark   85% 27 4 0   79% 14 1   83%
src / server_list / spec / cpu_benchmark.py get_all_benchmarks   90% 10 1 0   50% 2 1   83%
src / server_list / spec / cpu_benchmark.py _find_benchmark_match   73% 11 3 0   58% 12 1   65%
src / server_list / spec / cpu_benchmark.py get_benchmarks_batch   100% 2 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py clear_benchmark   100% 5 0 0   100% 0 0   100%
src / server_list / spec / cpu_benchmark.py fetch_and_save_benchmark   100% 8 0 0   100% 2 0   100%
src / server_list / spec / cpu_benchmark.py main   91% 11 1 0   75% 4 1   87%
src / server_list / spec / cpu_benchmark.py (no function)   100% 51 0 2   100% 0 0   100%
src / server_list / spec / data_collector.py _get_connection   100% 2 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py init_db   100% 1 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py load_secret   100% 4 0 0   100% 2 0   100%
src / server_list / spec / data_collector.py load_config   75% 4 1 0   50% 2 1   67%
src / server_list / spec / data_collector.py connect_to_esxi   100% 10 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_vm_storage_size   100% 9 0 0   67% 6 2   87%
src / server_list / spec / data_collector.py fetch_vm_data   90% 20 2 0   75% 4 1   88%
src / server_list / spec / data_collector.py _extract_cpu_info   100% 3 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py _extract_memory_total   100% 3 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py _extract_usage_from_quickstats   94% 17 1 0   50% 6 3   83%
src / server_list / spec / data_collector.py _extract_os_version   100% 2 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py fetch_host_info   71% 28 8 0   50% 18 3   63%
src / server_list / spec / data_collector.py fetch_ilo_power   0% 27 27 0   0% 4 0   0%
src / server_list / spec / data_collector.py save_power_info   0% 5 5 0   100% 0 0   0%
src / server_list / spec / data_collector.py get_power_info   0% 5 5 0   100% 0 0   0%
src / server_list / spec / data_collector.py get_all_power_info   0% 4 4 0   100% 0 0   0%
src / server_list / spec / data_collector.py collect_ilo_power_data   36% 11 7 0   17% 6 1   29%
src / server_list / spec / data_collector.py _prometheus_request   0% 10 10 0   0% 2 0   0%
src / server_list / spec / data_collector.py _execute_prometheus_query   0% 2 2 0   100% 0 0   0%
src / server_list / spec / data_collector.py _fetch_prometheus_metric   0% 8 8 0   0% 2 0   0%
src / server_list / spec / data_collector.py _fetch_prometheus_metric_with_timestamp   0% 9 9 0   0% 4 0   0%
src / server_list / spec / data_collector.py fetch_prometheus_uptime   0% 11 11 0   0% 4 0   0%
src / server_list / spec / data_collector.py fetch_prometheus_usage   0% 23 23 0   0% 6 0   0%
src / server_list / spec / data_collector.py get_prometheus_instance   0% 5 5 0   0% 4 0   0%
src / server_list / spec / data_collector.py collect_prometheus_uptime_data   21% 24 19 0   12% 8 1   19%
src / server_list / spec / data_collector.py fetch_prometheus_zfs_pools   0% 19 19 0   0% 10 0   0%
src / server_list / spec / data_collector.py save_zfs_pool_info   0% 7 7 0   0% 2 0   0%
src / server_list / spec / data_collector.py get_zfs_pool_info   0% 4 4 0   100% 0 0   0%
src / server_list / spec / data_collector.py collect_prometheus_zfs_data   25% 20 15 0   12% 8 1   21%
src / server_list / spec / data_collector.py fetch_btrfs_uuid   0% 6 6 0   0% 2 0   0%
src / server_list / spec / data_collector.py fetch_btrfs_metrics   0% 7 7 0   0% 2 0   0%
src / server_list / spec / data_collector.py fetch_windows_disk_metrics   0% 7 7 0   0% 2 0   0%
src / server_list / spec / data_collector.py _fetch_filesystem_mount_metrics   0% 7 7 0   0% 2 0   0%
src / server_list / spec / data_collector.py _fetch_mount_for_config   0% 17 17 0   0% 10 0   0%
src / server_list / spec / data_collector.py fetch_prometheus_mount_info   0% 6 6 0   0% 4 0   0%
src / server_list / spec / data_collector.py save_mount_info   0% 7 7 0   0% 2 0   0%
src / server_list / spec / data_collector.py get_mount_info   0% 4 4 0   100% 0 0   0%
src / server_list / spec / data_collector.py save_ups_info   100% 6 0 0   100% 2 0   100%
src / server_list / spec / data_collector.py save_ups_clients   100% 8 0 0   100% 4 0   100%
src / server_list / spec / data_collector.py get_all_ups_info   100% 4 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_ups_info   100% 5 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_ups_clients   100% 4 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_all_ups_clients   100% 4 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py _resolve_hostname   86% 7 1 0   100% 0 0   86%
src / server_list / spec / data_collector.py _find_vm_esxi_host   0% 5 5 0   100% 0 0   0%
src / server_list / spec / data_collector.py _apply_domain   0% 5 5 0   0% 4 0   0%
src / server_list / spec / data_collector.py _enrich_ups_clients   71% 17 5 0   50% 10 3   63%
src / server_list / spec / data_collector.py collect_ups_data   96% 28 1 0   67% 12 4   88%
src / server_list / spec / data_collector.py collect_prometheus_mount_data   20% 25 20 0   8% 12 1   16%
src / server_list / spec / data_collector.py save_vm_data   100% 7 0 0   100% 2 0   100%
src / server_list / spec / data_collector.py save_host_info   100% 5 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py save_host_info_failed   100% 5 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py update_collection_status   100% 4 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_collection_status   100% 5 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py is_host_reachable   100% 2 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_all_collection_status   100% 4 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_all_vm_info   100% 9 0 0   75% 4 1   92%
src / server_list / spec / data_collector.py get_vm_info   86% 7 1 0   50% 2 1   78%
src / server_list / spec / data_collector.py get_all_vm_info_for_host   100% 4 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_host_info   100% 5 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py get_all_host_info   100% 4 0 0   100% 0 0   100%
src / server_list / spec / data_collector.py _collect_esxi_host_data   65% 17 6 0   50% 2 1   63%
src / server_list / spec / data_collector.py collect_cpu_benchmark_data   18% 28 23 0   6% 18 1   13%
src / server_list / spec / data_collector.py collect_all_data   81% 27 5 0   70% 20 6   77%
src / server_list / spec / data_collector.py collect_host_data   0% 17 17 0   0% 4 0   0%
src / server_list / spec / data_collector.py _update_worker   64% 11 4 0   100% 2 0   69%
src / server_list / spec / data_collector.py start_collector   83% 6 1 0   50% 2 1   75%
src / server_list / spec / data_collector.py stop_collector   100% 3 0 0   50% 2 1   80%
src / server_list / spec / data_collector.py (no function)   100% 92 0 14   100% 0 0   100%
src / server_list / spec / db.py init_from_config   0% 5 5 0   100% 0 0   0%
src / server_list / spec / db.py ensure_data_dir   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db.py get_connection   100% 3 0 0   100% 0 0   100%
src / server_list / spec / db.py init_schema   0% 3 3 0   100% 0 0   0%
src / server_list / spec / db.py init_schema_from_file   100% 3 0 0   100% 0 0   100%
src / server_list / spec / db.py (no function)   100% 23 0 2   100% 0 0   100%
src / server_list / spec / db_config.py get_server_data_db_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py set_server_data_db_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py get_cpu_spec_db_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py set_cpu_spec_db_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py get_cache_db_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py set_cache_db_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py get_config_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py set_config_path   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py reset_all_paths   100% 1 0 0   100% 0 0   100%
src / server_list / spec / db_config.py (no function)   100% 19 0 0   100% 0 0   100%
src / server_list / spec / models.py VMInfo.parse_row   100% 1 0 0   100% 0 0   100%
src / server_list / spec / models.py VMInfo.parse_row_full   100% 1 0 0   100% 0 0   100%
src / server_list / spec / models.py HostInfo.parse_row   100% 1 0 0   100% 0 0   100%
src / server_list / spec / models.py PowerInfo.parse_row   0% 1 1 0   100% 0 0   0%
src / server_list / spec / models.py PowerInfo.parse_row_with_host   0% 1 1 0   100% 0 0   0%
src / server_list / spec / models.py CollectionStatus.parse_row   100% 1 0 0   100% 0 0   100%
src / server_list / spec / models.py ZfsPoolInfo.parse_row   0% 1 1 0   100% 0 0   0%
src / server_list / spec / models.py MountInfo.parse_row   0% 1 1 0   100% 0 0   0%
src / server_list / spec / models.py UPSInfo.parse_row   100% 1 0 0   100% 0 0   100%
src / server_list / spec / models.py UPSClient.parse_row   100% 1 0 0   100% 0 0   100%
src / server_list / spec / models.py (no function)   100% 116 0 0   100% 0 0   100%
src / server_list / spec / ogp.py escape   100% 1 0 0   100% 0 0   100%
src / server_list / spec / ogp.py generate_ogp_tags   75% 4 1 0   50% 2 1   67%
src / server_list / spec / ogp.py generate_top_page_ogp   0% 6 6 0   0% 2 0   0%
src / server_list / spec / ogp.py generate_machine_page_ogp   29% 24 17 0   12% 16 2   22%
src / server_list / spec / ogp.py _normalize_model_name   0% 5 5 0   100% 0 0   0%
src / server_list / spec / ogp.py inject_ogp_into_html   0% 5 5 0   0% 4 0   0%
src / server_list / spec / ogp.py (no function)   100% 12 0 2   100% 0 0   100%
src / server_list / spec / ups_collector.py _send_command   91% 11 1 0   50% 4 2   80%
src / server_list / spec / ups_collector.py _parse_list_ups   100% 9 0 0   83% 6 1   93%
src / server_list / spec / ups_collector.py _parse_list_var   100% 9 0 0   83% 6 1   93%
src / server_list / spec / ups_collector.py _parse_list_client   100% 7 0 0   83% 6 1   92%
src / server_list / spec / ups_collector.py _safe_float   100% 6 0 0   100% 2 0   100%
src / server_list / spec / ups_collector.py _safe_int   100% 6 0 0   100% 2 0   100%
src / server_list / spec / ups_collector.py connect_to_nut   100% 8 0 0   100% 0 0   100%
src / server_list / spec / ups_collector.py list_ups   50% 6 3 0   100% 0 0   50%
src / server_list / spec / ups_collector.py get_ups_variables   50% 6 3 0   100% 0 0   50%
src / server_list / spec / ups_collector.py get_ups_clients   50% 6 3 0   100% 0 0   50%
src / server_list / spec / ups_collector.py fetch_ups_info   89% 9 1 0   75% 4 1   85%
src / server_list / spec / ups_collector.py fetch_ups_clients   100% 7 0 0   100% 2 0   100%
src / server_list / spec / ups_collector.py fetch_all_ups_from_host   95% 20 1 0   80% 10 2   90%
src / server_list / spec / ups_collector.py (no function)   100% 18 0 0   100% 0 0   100%
src / server_list / spec / webapi / __init__.py success_response   100% 1 0 0   100% 0 0   100%
src / server_list / spec / webapi / __init__.py error_response   100% 1 0 0   100% 0 0   100%
src / server_list / spec / webapi / __init__.py (no function)   100% 3 0 0   100% 0 0   100%
src / server_list / spec / webapi / config.py is_esxi_host   100% 2 0 0   100% 0 0   100%
src / server_list / spec / webapi / config.py enrich_config_with_vm_data   100% 16 0 0   100% 8 0   100%
src / server_list / spec / webapi / config.py get_config_api   100% 7 0 0   100% 2 0   100%
src / server_list / spec / webapi / config.py (no function)   100% 8 0 0   100% 0 0   100%
src / server_list / spec / webapi / cpu.py get_cpu_benchmark   100% 15 0 0   100% 6 0   100%
src / server_list / spec / webapi / cpu.py get_cpu_benchmarks_batch   100% 24 0 0   92% 12 1   97%
src / server_list / spec / webapi / cpu.py (no function)   100% 9 0 0   100% 0 0   100%
src / server_list / spec / webapi / power.py get_all_power   0% 3 3 0   100% 0 0   0%
src / server_list / spec / webapi / power.py get_host_power   0% 4 4 0   0% 2 0   0%
src / server_list / spec / webapi / power.py (no function)   100% 9 0 0   100% 0 0   100%
src / server_list / spec / webapi / storage.py get_host_zfs_pools   100% 4 0 0   100% 2 0   100%
src / server_list / spec / webapi / storage.py get_host_mounts   100% 4 0 0   100% 2 0   100%
src / server_list / spec / webapi / storage.py get_storage_batch   100% 15 0 0   100% 8 0   100%
src / server_list / spec / webapi / storage.py (no function)   100% 12 0 0   100% 0 0   100%
src / server_list / spec / webapi / ups.py get_all_ups   100% 15 0 0   83% 6 1   95%
src / server_list / spec / webapi / ups.py get_ups_detail   100% 7 0 0   100% 2 0   100%
src / server_list / spec / webapi / ups.py (no function)   100% 9 0 0   100% 0 0   100%
src / server_list / spec / webapi / uptime.py get_all_uptime   100% 3 0 0   100% 0 0   100%
src / server_list / spec / webapi / uptime.py get_host_uptime   100% 4 0 0   100% 2 0   100%
src / server_list / spec / webapi / uptime.py (no function)   100% 9 0 0   100% 0 0   100%
src / server_list / spec / webapi / vm.py _vm_to_response   100% 5 0 0   100% 2 0   100%
src / server_list / spec / webapi / vm.py apply_unknown_power_state_if_unreachable   100% 2 0 0   100% 0 0   100%
src / server_list / spec / webapi / vm.py get_vm_info_api   100% 9 0 0   100% 4 0   100%
src / server_list / spec / webapi / vm.py get_vm_info_batch   92% 13 1 0   83% 6 1   89%
src / server_list / spec / webapi / vm.py get_vms_for_host   100% 3 0 0   100% 0 0   100%
src / server_list / spec / webapi / vm.py refresh_host_data   0% 4 4 0   0% 2 0   0%
src / server_list / spec / webapi / vm.py (no function)   100% 16 0 0   100% 0 0   100%
Total     74% 2028 529 26   54% 530 73   70%

No items found using the specified filter.