Coverage report: 80%

Files Functions Classes

coverage.py v7.12.0, created at 2025-12-06 04:49 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
app / __init__.py create_app   100% 53 0 0   75% 4 1   98%
app / __init__.py (no function)   100% 25 0 0   100% 0 0   100%
app / config.py Config.configure_logging   100% 2 0 0   100% 0 0   100%
app / config.py TestingConfig.__init__   0% 6 6 0   0% 4 0   0%
app / config.py configure_app_logging   100% 2 0 0   100% 0 0   100%
app / config.py (no function)   98% 80 2 0   50% 2 1   96%
app / forms.py BookForm.fill_from_book   100% 13 0 0   100% 0 0   100%
app / forms.py (no function)   100% 22 0 0   100% 0 0   100%
app / helpers / __init__.py (no function)   100% 4 0 0   100% 0 0   100%
app / helpers / buildinfo.py check_and_generate_build_info   100% 23 0 0   100% 6 0   100%
app / helpers / buildinfo.py read_build_info   67% 6 2 0   50% 4 2   60%
app / helpers / buildinfo.py write_empty_build_info   100% 3 0 0   100% 0 0   100%
app / helpers / buildinfo.py remove_build_info   100% 4 0 0   100% 0 0   100%
app / helpers / buildinfo.py _generate_build_info   100% 18 0 0   100% 2 0   100%
app / helpers / buildinfo.py _get_commit_target_branch   100% 15 0 0   100% 10 0   100%
app / helpers / buildinfo.py (no function)   94% 18 1 0   50% 2 1   90%
app / helpers / globals.py register_globals   100% 12 0 0   100% 0 0   100%
app / helpers / globals.py register_globals.access_forbidden   100% 1 0 0   100% 0 0   100%
app / helpers / globals.py register_globals.utility_processor   100% 2 0 0   100% 0 0   100%
app / helpers / globals.py register_globals.add_global_vars   100% 1 0 0   100% 0 0   100%
app / helpers / globals.py register_globals.before_request   100% 3 0 0   100% 2 0   100%
app / helpers / globals.py register_globals.check_session_timeout   86% 7 1 0   83% 6 1   85%
app / helpers / globals.py register_globals.check_ip_binding   80% 5 1 0   75% 4 1   78%
app / helpers / globals.py (no function)   100% 6 0 0   100% 0 0   100%
app / helpers / tag_colors.py get_color_choices   100% 6 0 0   100% 2 0   100%
app / helpers / tag_colors.py _get_badge_colors_from_scss   93% 15 1 0   67% 6 2   86%
app / helpers / tag_colors.py choose_random_color   0% 3 3 0   100% 0 0   0%
app / helpers / tag_colors.py (no function)   100% 9 0 0   100% 0 0   100%
app / helpers / utilities.py _strip_subtitles   83% 6 1 0   75% 4 1   80%
app / helpers / utilities.py build_library_search_urls   100% 4 0 0   100% 0 0   100%
app / helpers / utilities.py render_icon   100% 3 0 0   100% 2 0   100%
app / helpers / utilities.py compute_next_url   100% 1 0 0   100% 0 0   100%
app / helpers / utilities.py parse_url   100% 4 0 0   100% 2 0   100%
app / helpers / utilities.py sanitize   100% 3 0 0   100% 2 0   100%
app / helpers / utilities.py sanitize_categories_flat   100% 5 0 0   100% 2 0   100%
app / helpers / utilities.py (no function)   100% 13 0 0   100% 0 0   100%
app / helpers / validators.py ValidImageUrl.__init__   100% 1 0 0   100% 0 0   100%
app / helpers / validators.py ValidImageUrl.__call__   62% 8 3 0   50% 2 1   60%
app / helpers / validators.py ValidAmazonLink.__call__   75% 4 1 0   50% 2 1   67%
app / helpers / validators.py (no function)   100% 9 0 0   100% 0 0   100%
app / limiter.py add_limits_to_views   100% 1 0 0   100% 0 0   100%
app / limiter.py (no function)   100% 4 0 0   100% 0 0   100%
app / models / __init__.py (no function)   100% 5 0 0   100% 0 0   100%
app / models / book.py Book.to_dict   100% 4 0 0   100% 2 0   100%
app / models / book.py Book.__repr__   0% 1 1 0   100% 0 0   0%
app / models / book.py (no function)   100% 27 0 0   100% 0 0   100%
app / models / feedback.py Feedback.user   100% 1 0 0   100% 0 0   100%
app / models / feedback.py (no function)   100% 17 0 3   100% 0 0   100%
app / models / reading_status.py ReadingStatus.user   100% 1 0 0   100% 0 0   100%
app / models / reading_status.py (no function)   100% 17 0 3   100% 0 0   100%
app / models / tags.py Tag.__repr__   0% 1 1 0   100% 0 0   0%
app / models / tags.py TagBook.__repr__   0% 1 1 0   100% 0 0   0%
app / models / tags.py (no function)   100% 22 0 0   100% 0 0   100%
app / routes.py index   100% 2 0 0   100% 0 0   100%
app / routes.py about   100% 2 0 0   100% 0 0   100%
app / routes.py search   100% 4 0 0   100% 2 0   100%
app / routes.py details   100% 6 0 0   100% 2 0   100%
app / routes.py library_searches   100% 5 0 0   100% 2 0   100%
app / routes.py download   100% 5 0 0   100% 2 0   100%
app / routes.py add_book   82% 11 2 0   100% 4 0   87%
app / routes.py edit_book   79% 24 5 0   83% 12 2   81%
app / routes.py fill_by_asin   89% 9 1 0   83% 6 1   87%
app / routes.py delete_book   70% 10 3 0   100% 2 0   75%
app / routes.py change_status   100% 13 0 0   100% 6 0   100%
app / routes.py change_feedback   100% 12 0 0   100% 6 0   100%
app / routes.py autocomplete_tags   0% 4 4 0   100% 0 0   0%
app / routes.py add_tag   0% 8 8 0   0% 2 0   0%
app / routes.py get_tags   0% 4 4 0   0% 2 0   0%
app / routes.py get_user_tags   0% 1 1 0   100% 0 0   0%
app / routes.py remove_tag   0% 8 8 0   0% 4 0   0%
app / routes.py csp_report   0% 3 3 0   100% 0 0   0%
app / routes.py _check_for_required_tag_and_book   0% 12 12 0   0% 6 0   0%
app / routes.py _check_for_required_book   100% 7 0 0   100% 4 0   100%
app / routes.py _perform_search_base_on_args   100% 24 0 0   100% 12 0   100%
app / routes.py _make_csv_response   93% 15 1 0   75% 4 1   89%
app / routes.py _safe_string   100% 3 0 0   100% 2 0   100%
app / routes.py (no function)   100% 73 0 0   100% 0 0   100%
app / security / __init__.py (no function)   100% 6 0 0   100% 0 0   100%
app / security / models.py Role.__repr__   0% 1 1 0   100% 0 0   0%
app / security / models.py User.reading_statuses   100% 1 0 0   100% 0 0   100%
app / security / models.py User.feedbacks   100% 1 0 0   100% 0 0   100%
app / security / models.py User.tags   100% 1 0 0   100% 0 0   100%
app / security / models.py User.__repr__   0% 1 1 0   100% 0 0   0%
app / security / models.py SecureModelView.is_accessible   0% 1 1 0   100% 0 0   0%
app / security / models.py (no function)   100% 18 0 0   100% 0 0   100%
app / security / routes.py UserModelView.create_view   0% 1 1 0   100% 0 0   0%
app / security / routes.py register_admin_views   100% 7 0 0   100% 0 0   100%
app / security / routes.py RoleBasedMenuLink.__init__   100% 2 0 0   100% 0 0   100%
app / security / routes.py RoleBasedMenuLink.is_accessible   0% 6 6 0   0% 4 0   0%
app / security / routes.py custom_register   0% 11 11 0   0% 6 0   0%
app / security / routes.py (no function)   100% 32 0 0   100% 0 0   100%
app / security / secure_index_view.py SecureAdminIndexView.__init__   100% 1 0 0   100% 0 0   100%
app / security / secure_index_view.py SecureAdminIndexView.index   0% 3 3 0   0% 2 0   0%
app / security / secure_index_view.py (no function)   100% 7 0 0   100% 0 0   100%
app / security / tag_views.py tag_pill_markup   0% 1 1 0   100% 0 0   0%
app / security / tag_views.py BootstrapSelectWidget.__call__   0% 10 10 0   0% 2 0   0%
app / security / tag_views.py _color_list_formatter   0% 3 3 0   0% 2 0   0%
app / security / tag_views.py SearchRowAction.__init__   100% 1 0 0   100% 0 0   100%
app / security / tag_views.py SearchRowAction.get_url   0% 1 1 0   100% 0 0   0%
app / security / tag_views.py SearchRowAction.render   0% 1 1 0   100% 0 0   0%
app / security / tag_views.py UserTagModelView.on_form_prefill   0% 2 2 0   0% 2 0   0%
app / security / tag_views.py UserTagModelView.validate_form   0% 3 3 0   0% 2 0   0%
app / security / tag_views.py UserTagModelView.is_accessible   0% 1 1 0   100% 0 0   0%
app / security / tag_views.py UserTagModelView.inaccessible_callback   0% 1 1 0   100% 0 0   0%
app / security / tag_views.py UserTagModelView.get_query   0% 1 1 0   100% 0 0   0%
app / security / tag_views.py UserTagModelView.get_count_query   0% 1 1 0   100% 0 0   0%
app / security / tag_views.py UserTagModelView.on_model_change   0% 5 5 0   0% 4 0   0%
app / security / tag_views.py (no function)   100% 41 0 0   100% 0 0   100%
app / security / user_session_cache.py custom_user_loader   100% 10 0 0   67% 6 2   88%
app / security / user_session_cache.py on_logout   0% 3 3 0   0% 2 0   0%
app / security / user_session_cache.py _cache_key_from_string   100% 1 0 0   100% 0 0   100%
app / security / user_session_cache.py _cache_key_from_user   0% 3 3 0   0% 2 0   0%
app / security / user_session_cache.py _load_user_from_datastore   80% 5 1 0   50% 2 1   71%
app / security / user_session_cache.py (no function)   100% 8 0 0   100% 0 0   100%
app / services / __init__.py (no function)   100% 7 0 0   100% 0 0   100%
app / services / about_service.py build_about_info   100% 10 0 0   100% 0 0   100%
app / services / about_service.py _environment_info   100% 1 0 0   100% 0 0   100%
app / services / about_service.py _installed_libs   100% 12 0 0   75% 4 1   94%
app / services / about_service.py _get_safe_environment_variables   100% 2 0 0   100% 0 0   100%
app / services / about_service.py _database_info   100% 32 0 0   81% 16 3   94%
app / services / about_service.py (no function)   100% 15 0 0   100% 0 0   100%
app / services / asin_data_service.py fetch_product_details   97% 36 1 0   58% 24 10   82%
app / services / asin_data_service.py (no function)   100% 4 0 0   100% 0 0   100%
app / services / book_service.py get_book_by_id   100% 8 0 0   100% 4 0   100%
app / services / book_service.py add_new_book   36% 14 9 0   100% 0 0   36%
app / services / book_service.py update_book   65% 26 9 0   100% 0 0   65%
app / services / book_service.py del_book   56% 9 4 0   50% 2 1   55%
app / services / book_service.py get_book_status   0% 3 3 0   100% 0 0   0%
app / services / book_service.py get_book_feedback   0% 3 3 0   100% 0 0   0%
app / services / book_service.py set_book_status   100% 9 0 0   83% 6 1   93%
app / services / book_service.py set_book_feedback   100% 9 0 0   83% 6 1   93%
app / services / book_service.py book_to_dict_with_status_and_feedback   65% 17 6 0   50% 14 3   58%
app / services / book_service.py (no function)   100% 16 0 0   100% 0 0   100%
app / services / category_service.py get_category_bs_tree   100% 6 0 0   100% 2 0   100%
app / services / category_service.py get_category_bs_tree._add_categories   100% 7 0 0   100% 4 0   100%
app / services / category_service.py id_to_fullpath   100% 3 0 0   100% 0 0   100%
app / services / category_service.py _get_category_list   100% 3 0 0   100% 0 0   100%
app / services / category_service.py _get_category_tree   100% 8 0 0   100% 2 0   100%
app / services / category_service.py _get_category_tree._add_categories   100% 5 0 0   100% 4 0   100%
app / services / category_service.py _fullpath_to_id   100% 3 0 0   100% 0 0   100%
app / services / category_service.py (no function)   100% 10 0 0   100% 0 0   100%
app / services / search_service.py search_by_categories   80% 5 1 0   50% 2 1   71%
app / services / search_service.py search_by_author   100% 1 0 0   100% 0 0   100%
app / services / search_service.py search_by_title   100% 1 0 0   100% 0 0   100%
app / services / search_service.py _search_by_attribute   78% 9 2 0   67% 6 2   73%
app / services / search_service.py _finish_building_query_and_execute   100% 7 0 0   100% 2 0   100%
app / services / search_service.py _add_status_and_feedback_filters   33% 9 6 0   25% 8 2   29%
app / services / search_service.py _add_user_status_and_feedback_joins   57% 7 3 0   50% 2 1   56%
app / services / search_service.py (no function)   100% 13 0 0   100% 0 0   100%
app / services / tag_service.py get_tags_for_user   0% 5 5 0   0% 2 0   0%
app / services / tag_service.py get_or_create_tag   0% 13 13 0   0% 6 0   0%
app / services / tag_service.py tag_book   0% 6 6 0   0% 2 0   0%
app / services / tag_service.py get_tags_for_user_with_colors   0% 3 3 0   100% 0 0   0%
app / services / tag_service.py get_tags_and_colors   0% 3 3 0   100% 0 0   0%
app / services / tag_service.py find_tag_for_user   0% 1 1 0   100% 0 0   0%
app / services / tag_service.py remove_tag_from_book   0% 3 3 0   100% 0 0   0%
app / services / tag_service.py (no function)   100% 12 0 0   100% 0 0   100%
Total     84% 1370 219 6   64% 306 45   80%

No items found using the specified filter.