| 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% |