Coverage report: 21%

Files Functions Classes

coverage.py v7.15.2, created at 2026-08-01 12:21 +0000

File function   statements missing excluded   coverage
app/aircraft/gps_import.py _load_airports   16 16 0   0%
app/aircraft/gps_import.py _reset_airports_cache   1 1 0   0%
app/aircraft/gps_import.py _haversine_km   7 7 0   0%
app/aircraft/gps_import.py detect_format   10 1 0   90%
app/aircraft/gps_import.py classify_track   14 14 0   0%
app/aircraft/gps_import.py _extract_icao_hints   4 4 0   0%
app/aircraft/gps_import.py _parse_gpx   29 25 0   14%
app/aircraft/gps_import.py _parse_garmin_csv   47 47 0   0%
app/aircraft/gps_import.py _parse_kml   54 50 0   7%
app/aircraft/gps_import.py parse_gps_file   6 1 0   83%
app/aircraft/gps_import.py merge_and_sort   6 6 0   0%
app/aircraft/gps_import.py _split_into_raw_groups   31 31 0   0%
app/aircraft/gps_import.py _count_landings   8 8 0   0%
app/aircraft/gps_import.py detect_segments   23 23 0   0%
app/aircraft/gps_import.py resolve_icao   10 10 0   0%
app/aircraft/gps_import.py round_flight_time   6 6 0   0%
app/aircraft/gps_import.py downsample_track   8 8 0   0%
app/aircraft/gps_import.py build_geojson   2 2 0   0%
app/aircraft/gps_import.py score_gps_candidates   3 3 0   0%
app/aircraft/gps_import.py (no function)   77 0 0   100%
app/documents/routes.py _tenant_id   4 4 0   0%
app/documents/routes.py _get_tenant   4 4 1   0%
app/documents/routes.py _get_aircraft_or_404   4 4 0   0%
app/documents/routes.py _get_aircraft_document_or_404   4 4 0   0%
app/documents/routes.py _delete_file   18 18 0   0%
app/documents/routes.py _resolve_component   9 9 0   0%
app/documents/routes.py _save_upload   9 9 0   0%
app/documents/routes.py _ensure_tenant_slug   11 11 0   0%
app/documents/routes.py _safe_path_component   1 0 0   100%
app/documents/routes.py _safe_join   5 0 0   100%
app/documents/routes.py _parse_reconcile_filename   10 10 0   0%
app/documents/routes.py _save_upload_canonical   20 20 0   0%
app/documents/routes.py _current_role   2 2 0   0%
app/documents/routes.py _doc_broken   2 2 0   0%
app/documents/routes.py title_suggestions   15 15 0   0%
app/documents/routes.py list_documents   11 11 0   0%
app/documents/routes.py upload_document   44 44 0   0%
app/documents/routes.py upload_document._re_render   3 3 0   0%
app/documents/routes.py edit_document   35 35 0   0%
app/documents/routes.py delete_document   8 8 0   0%
app/documents/routes.py download_all_documents   25 25 0   0%
app/documents/routes.py upload_insurance_cert   21 21 0   0%
app/documents/routes.py upload_pilot_document   27 27 0   0%
app/documents/routes.py delete_pilot_document   9 9 0   0%
app/documents/routes.py list_reconcile   15 15 0   0%
app/documents/routes.py scan_documents   52 52 0   0%
app/documents/routes.py rename_reconcile_folder   61 61 0   0%
app/documents/routes.py import_reconcile   28 28 0   0%
app/documents/routes.py ignore_reconcile   6 6 0   0%
app/documents/routes.py (no function)   89 0 0   100%
app/pilots/logbook_import.py _norm   1 0 0   100%
app/pilots/logbook_import.py _disambiguate   9 0 0   100%
app/pilots/logbook_import.py _fingerprint   2 0 0   100%
app/pilots/logbook_import.py _is_header_row   5 0 0   100%
app/pilots/logbook_import.py _is_numeric_str   5 0 0   100%
app/pilots/logbook_import.py _header_alias_score   1 0 0   100%
app/pilots/logbook_import.py _find_header_row   13 0 0   100%
app/pilots/logbook_import.py _trim_trailing_empty_cols   9 0 1   100%
app/pilots/logbook_import.py _merge_label_map   10 10 0   0%
app/pilots/logbook_import.py _group_labels_from_map   1 1 0   0%
app/pilots/logbook_import.py _group_labels_heuristic   18 0 0   100%
app/pilots/logbook_import.py _apply_group_labels   9 0 0   100%
app/pilots/logbook_import.py parse_file   6 0 0   100%
app/pilots/logbook_import.py _preferred_sheet_names   8 8 0   0%
app/pilots/logbook_import.py _pick_best_excel_sheet   17 17 0   0%
app/pilots/logbook_import.py _parse_excel   14 10 0   29%
app/pilots/logbook_import.py _parse_csv   15 0 0   100%
app/pilots/logbook_import.py _build_parsed_file   17 2 0   88%
app/pilots/logbook_import.py propose_mapping   24 24 0   0%
app/pilots/logbook_import.py _alias_mapping   4 4 0   0%
app/pilots/logbook_import.py _is_subtotal_row   12 12 0   0%
app/pilots/logbook_import.py parse_date_value   17 4 0   76%
app/pilots/logbook_import.py parse_time_value   16 3 0   81%
app/pilots/logbook_import.py parse_duration_value   25 9 0   64%
app/pilots/logbook_import.py parse_int_value   17 6 0   65%
app/pilots/logbook_import.py _is_nonempty   5 5 0   0%
app/pilots/logbook_import.py type_hints   17 17 0   0%
app/pilots/logbook_import.py preview_rows   15 15 0   0%
app/pilots/logbook_import.py _date_col_index   4 4 0   0%
app/pilots/logbook_import.py _row_get   2 2 0   0%
app/pilots/logbook_import.py _parse_row_date   4 4 0   0%
app/pilots/logbook_import.py _build_entry_kwargs   34 34 0   0%
app/pilots/logbook_import.py _num   1 1 0   0%
app/pilots/logbook_import.py _dup_key   1 1 0   0%
app/pilots/logbook_import.py _fetch_existing_dedup_keys   4 4 0   0%
app/pilots/logbook_import.py _assign_pilot_identity   11 11 0   0%
app/pilots/logbook_import.py execute_import   48 48 0   0%
app/pilots/logbook_import.py _kwargs_duration   3 3 0   0%
app/pilots/logbook_import.py _time_close   5 5 0   0%
app/pilots/logbook_import.py _score_candidate   26 26 0   0%
app/pilots/logbook_import.py find_conflicting_rows   28 28 0   0%
app/pilots/logbook_import.py link_entries_to_aircraft   39 39 0   0%
app/pilots/logbook_import.py link_entries_to_aircraft._norm_reg   1 1 0   0%
app/pilots/logbook_import.py link_entries_to_aircraft._tenants_for_pilot   3 3 0   0%
app/pilots/logbook_import.py link_entries_to_aircraft._place_icao   4 4 0   0%
app/pilots/logbook_import.py (no function)   90 0 0   100%
app/reservations/routes.py _safe_next   8 0 0   100%
app/reservations/routes.py _tenant_id   3 3 1   0%
app/reservations/routes.py _get_aircraft_or_404   4 4 0   0%
app/reservations/routes.py _get_reservation_or_404   4 4 0   0%
app/reservations/routes.py _has_conflict   7 7 0   0%
app/reservations/routes.py _parse_datetime   4 4 0   0%
app/reservations/routes.py _computed_rate   1 1 0   0%
app/reservations/routes.py _effective_rate   6 6 0   0%
app/reservations/routes.py _rate_terms_label   5 5 0   0%
app/reservations/routes.py _is_owner_role   2 2 0   0%
app/reservations/routes.py _rental_authorization_policy   3 3 0   0%
app/reservations/routes.py _grounded_reservation_policy   3 3 0   0%
app/reservations/routes.py _has_open_grounding_snag   1 1 0   0%
app/reservations/routes.py _renter_authorization_ok   2 2 0   0%
app/reservations/routes.py _rate_divergence_warning   10 10 0   0%
app/reservations/routes.py _chargeable_days   4 4 0   0%
app/reservations/routes.py _estimated_hours   5 5 0   0%
app/reservations/routes.py _compute_cost   5 5 0   0%
app/reservations/routes.py _build_calendar_grid   2 2 0   0%
app/reservations/routes.py fleet_reservations   40 40 1   0%
app/reservations/routes.py calendar_view   39 39 0   0%
app/reservations/routes.py _get_downtime_or_404   4 4 0   0%
app/reservations/routes.py _save_downtime   30 30 0   0%
app/reservations/routes.py downtime_new   4 4 0   0%
app/reservations/routes.py downtime_edit   5 5 0   0%
app/reservations/routes.py downtime_delete   6 6 0   0%
app/reservations/routes.py new_reservation   13 13 0   0%
app/reservations/routes.py edit_reservation   13 13 0   0%
app/reservations/routes.py cancel_reservation   27 27 0   0%
app/reservations/routes.py confirm_reservation   33 33 0   0%
app/reservations/routes.py decline_reservation   12 12 0   0%
app/reservations/routes.py booking_settings   5 5 0   0%
app/reservations/routes.py _save_booking_settings   38 38 0   0%
app/reservations/routes.py _save_booking_settings._float_or_none   5 5 0   0%
app/reservations/routes.py _save_reservation   71 71 0   0%
app/reservations/routes.py _can_dispatch   1 1 0   0%
app/reservations/routes.py _discrepancy_warning   17 17 0   0%
app/reservations/routes.py reservation_detail   10 10 0   0%
app/reservations/routes.py checkout   57 57 0   0%
app/reservations/routes.py _checkout_counter_hint   2 2 0   0%
app/reservations/routes.py _draft_rental_charge   27 27 0   0%
app/reservations/routes.py _draft_rental_charge._delta   3 3 0   0%
app/reservations/routes.py checkin   48 48 0   0%
app/reservations/routes.py rental_charge   71 71 0   0%
app/reservations/routes.py rental_charge._float_field   5 5 0   0%
app/reservations/routes.py _my_account_period   9 9 0   0%
app/reservations/routes.py my_account   10 10 1   0%
app/reservations/routes.py my_account_statement_csv   13 13 1   0%
app/reservations/routes.py (no function)   102 0 0   100%
app/utils.py to_libpq_url   2 2 0   0%
app/utils.py _mercator_y   2 2 0   0%
app/utils.py _build_gif_projection   24 24 0   0%
app/utils.py _build_gif_projection.project   3 3 0   0%
app/utils.py _coords_from_geojson   21 21 0   0%
app/utils.py _make_tile_background   60 60 0   0%
app/utils.py _make_tile_background._lon_to_tx   1 1 0   0%
app/utils.py _make_tile_background._lat_to_ty   2 2 0   0%
app/utils.py _make_tile_background._tile_nw_lonlat   3 3 0   0%
app/utils.py _canvas_geo_bounds   24 24 0   0%
app/utils.py sort_tracks_oldest_first   1 1 0   0%
app/utils.py generate_tracks_gif   62 62 0   0%
app/utils.py generate_tracks_gif.draw_shadow_text   2 2 0   0%
app/utils.py generate_tracks_gif.draw_track   8 8 0   0%
app/utils.py generate_tracks_gif._frame_bg   7 7 0   0%
app/utils.py generate_single_track_image   44 44 0   0%
app/utils.py generate_single_track_image._blank_png   3 3 0   0%
app/utils.py generate_single_track_gif   71 71 0   0%
app/utils.py generate_single_track_gif._blank_gif   3 3 0   0%
app/utils.py generate_single_track_gif.draw_shadow_text   2 2 0   0%
app/utils.py generate_single_track_gif.draw_track   8 8 0   0%
app/utils.py generate_single_track_gif._frame_bg   7 7 0   0%
app/utils.py _load_aircraft_types   13 13 0   0%
app/utils.py _load_aircraft_type_variants   16 16 0   0%
app/utils.py _load_aircraft_type_engine_data   17 17 0   0%
app/utils.py get_aircraft_type_engine_info   1 1 0   0%
app/utils.py _build_model_name_prefix_lookup   16 16 0   0%
app/utils.py _sorted_model_prefix_keys   1 1 0   0%
app/utils.py resolve_aircraft_type_icao   19 19 0   0%
app/utils.py _load_airport_names   12 12 0   0%
app/utils.py _sl   1 1 0   0%
app/utils.py activity   6 6 0   0%
app/utils.py AircraftRefConverter.to_python   8 8 0   0%
app/utils.py AircraftRefConverter.to_url   7 7 0   0%
app/utils.py login_required   3 0 0   100%
app/utils.py login_required.decorated   3 3 0   0%
app/utils.py require_instance_admin   3 3 0   0%
app/utils.py require_instance_admin.decorated   8 8 0   0%
app/utils.py current_user_role   6 6 0   0%
app/utils.py check_update_available   14 14 0   0%
app/utils.py check_legacy_logbook_data   6 6 0   0%
app/utils.py require_role   3 0 0   100%
app/utils.py require_role.decorator   2 0 0   100%
app/utils.py require_role.decorator.decorated   3 3 0   0%
app/utils.py require_pilot_access   3 3 0   0%
app/utils.py require_pilot_access.decorated   10 10 0   0%
app/utils.py require_maint_access   3 3 0   0%
app/utils.py require_maint_access.decorated   10 10 0   0%
app/utils.py user_can_access_aircraft   11 11 0   0%
app/utils.py accessible_aircraft   18 18 0   0%
app/utils.py compute_aircraft_statuses   28 28 0   0%
app/utils.py (no function)   60 0 0   100%
Total     3004 2377 6   21%

No items found using the specified filter.