| app.py |
(no function) |
|
1 |
1 |
0 |
|
0% |
| redis_cache/cache_utility.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| tests/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/login/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
make_root_macaroon |
|
4 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
TestLoginViews.setUp |
|
5 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
TestLoginViews.test_login |
|
6 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
TestLoginViews.test_login_next |
|
6 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
TestLoginViews.test_login_api_500 |
|
5 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
TestLoginViews.test_logout |
|
6 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
TestLoginViews.test_login_callback |
|
10 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
TestLoginViews.test_login_callback_missing_root_macaroon |
|
6 |
0 |
0 |
|
100% |
| tests/login/test_login.py |
(no function) |
|
26 |
0 |
0 |
|
100% |
| tests/mock_data/mock_publisher_logic.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| tests/mock_data/mock_store_logic.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| tests/mock_data/search_mock.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| tests/publisher/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_logic.py |
TestProcessReleases.setUp |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_logic.py |
TestProcessReleases.test_process_releases_empty_inputs |
|
2 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_logic.py |
TestProcessReleases.test_process_releases_single_channel_single_revision |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_logic.py |
TestProcessReleases.test_process_releases_multiple_channels_revisions |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_logic.py |
TestGetAllArchitectures.test_get_all_architectures |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_logic.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.setUp |
|
6 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.set_session |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_account_details_no_login |
|
5 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_account_details |
|
5 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_solutions_csrf_token |
|
5 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_publisher |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_package |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_update_package |
|
7 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_update_package_failure |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_update_package_unauthorized |
|
5 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_list_page |
|
12 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_solutions_page_empty_state |
|
5 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_edit_solution_handles_empty_deployable_on |
|
8 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_list_page_expired_session_redirects_login |
|
9 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_accept_invite |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_accept_post_invite |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_accept_post_invite_failed |
|
5 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_accept_post_invite_error_list |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_accept_post_invite_macaroon_refresh_required |
|
7 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_reject_post_invite |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_collaborators |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_collaborators_failed |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_pending_invites |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_invite_collaborators |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_revoke_invite |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_register_name |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_post_register_name |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_post_register_name_already_owned |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_post_register_name_api_error_relays_message |
|
6 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_register_name_dispute |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_register_name_dispute_redirect |
|
2 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_register_name_dispute_thank_you_redirect |
|
2 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_register_name_dispute_thank_you |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_delete_package |
|
3 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_delete_package_failed |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_post_create_track |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_post_create_track_already_exists |
|
4 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
TestPublisherViews.test_get_releases |
|
6 |
0 |
0 |
|
100% |
| tests/publisher/test_publisher_views.py |
(no function) |
|
81 |
0 |
0 |
|
100% |
| tests/solutions/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_solution_from_backend_success |
|
7 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_solution_from_backend_prefers_authenticated_solution |
|
8 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_solution_from_backend_falls_back_to_public_preview |
|
8 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_solution_from_backend_falls_back_when_auth_hash_not_found |
|
11 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_solution_from_backend_not_found |
|
5 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_solution_from_backend_exception |
|
3 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_publisher_solutions_success |
|
10 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_get_publisher_solutions_auth_failure |
|
3 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_group_solution_drafts_attaches_draft_to_published |
|
6 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_group_solution_drafts_standalone_draft_without_published |
|
4 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_group_solution_drafts_rev1_draft_is_untouched |
|
5 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_group_solution_drafts_published_without_draft |
|
4 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionsLogic.test_group_solution_drafts_preserves_unrelated_solutions |
|
9 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionCategories.test_get_solution_categories_maps_store_shape |
|
3 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionCategories.test_get_solution_categories_falls_back_to_config |
|
3 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionCategories.test_get_solution_categories_falls_back_on_store_error |
|
3 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionCategories.test_map_category_slugs_to_display_known_slugs |
|
3 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionCategories.test_map_category_slugs_to_display_unknown_slug_fallback |
|
3 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
TestSolutionCategories.test_map_category_slugs_to_display_empty |
|
2 |
0 |
0 |
|
100% |
| tests/solutions/test_solutions_logic.py |
(no function) |
|
49 |
0 |
0 |
|
100% |
| tests/store/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
TestDetailsOverview.setUp |
|
2 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
TestDetailsOverview.test_details_with_discourse_link |
|
5 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
TestDetailsOverview.test_details_with_readthedocs_link |
|
8 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
TestDetailsOverview.test_get_libraries_from_cache |
|
5 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
TestDetailsOverview.test_get_libraries_from_gateway_on_cache_miss |
|
5 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
TestDetailsOverview.test_get_package_details_from_cache |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
TestDetailsOverview.test_get_package_details_from_gateway_on_cache_miss |
|
5 |
0 |
0 |
|
100% |
| tests/store/test_details_overview.py |
(no function) |
|
31 |
0 |
0 |
|
100% |
| tests/store/test_get_packages.py |
TestGetPackages.setUp |
|
2 |
0 |
0 |
|
100% |
| tests/store/test_get_packages.py |
TestGetPackages.test_get_packages |
|
5 |
0 |
0 |
|
100% |
| tests/store/test_get_packages.py |
TestGetPackages.test_get_packages_with_query |
|
7 |
0 |
0 |
|
100% |
| tests/store/test_get_packages.py |
TestGetPackages.test_get_packages_with_provides_and_requires |
|
9 |
0 |
0 |
|
100% |
| tests/store/test_get_packages.py |
TestGetPackages.test_get_packages_error_handling |
|
6 |
1 |
0 |
|
83% |
| tests/store/test_get_packages.py |
TestGetPackages.test_get_packages_empty_response |
|
5 |
0 |
0 |
|
100% |
| tests/store/test_get_packages.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| tests/store/test_get_publisher_details.py |
TestGetPublisherDetails.setUp |
|
2 |
0 |
0 |
|
100% |
| tests/store/test_get_publisher_details.py |
TestGetPublisherDetails.test_get_publisher_details |
|
6 |
0 |
0 |
|
100% |
| tests/store/test_get_publisher_details.py |
TestGetPublisherDetails.test_get_publisher_details_empty_response |
|
6 |
0 |
0 |
|
100% |
| tests/store/test_get_publisher_details.py |
TestGetPublisherDetails.test_get_publisher_details_exception |
|
5 |
2 |
0 |
|
60% |
| tests/store/test_get_publisher_details.py |
TestGetPublisherDetails._assert_heading_section |
|
5 |
0 |
0 |
|
100% |
| tests/store/test_get_publisher_details.py |
TestGetPublisherDetails._assert_content_section |
|
6 |
0 |
0 |
|
100% |
| tests/store/test_get_publisher_details.py |
TestGetPublisherDetails._assert_card |
|
6 |
0 |
0 |
|
100% |
| tests/store/test_get_publisher_details.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_no_revisions |
|
4 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_success_200 |
|
11 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_success_302 |
|
11 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_failure_404 |
|
11 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_failure_500 |
|
11 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_multiple_revisions_uses_first |
|
11 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_request_exception_returns_false |
|
6 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
TestPackageHasSboms.test_package_has_sboms_edge_cases |
|
13 |
0 |
0 |
|
100% |
| tests/store/test_package_has_sboms.py |
(no function) |
|
28 |
1 |
0 |
|
96% |
| tests/store/test_store_logic.py |
TestConvertChannelMaps.test_convert_channel_map |
|
2 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestAddStoreFront.test_add_store_front_data |
|
6 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetBannerUrl.test_banner_url_in_media |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetBannerUrl.test_banner_url_not_in_media |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetBannerUrl.test_empty_media_list |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestExtractSeries.test_extract_series_short_name |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestExtractSeries.test_extract_series_long_name |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestExtractSeries.test_extract_series_duplicate_bases |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestExtractBases.test_extract_bases |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestExtractBases.test_extract_bases_empty_bases |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestExtractBases.test_extract_bases_duplicate_bases |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestLibraries.test_process_libraries |
|
1 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestLibraries.test_get_library |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestFormatslug.test_format_slug |
|
8 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestProcessRevision.test_process_revision |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestAddOverlayData.test_add_overlay_data |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestAddOverlayData.test_overlay_data_not_needed |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetRevisions.test_get_revisions_sorted_unique |
|
4 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetRevisions.test_get_revisions_single_revision |
|
4 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetRevisions.test_get_revisions_empty_list |
|
4 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetRevisions.test_get_revisions_all_same_revision |
|
4 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
TestGetRevisions.test_get_revisions_with_sample_data |
|
3 |
0 |
0 |
|
100% |
| tests/store/test_store_logic.py |
(no function) |
|
35 |
0 |
0 |
|
100% |
| tests/test_context.py |
TestContextFunctions.test_schedule_banner |
|
2 |
0 |
0 |
|
100% |
| tests/test_context.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.setUp |
|
2 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.tearDown |
|
1 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_random_url |
|
8 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_random_url.test_func |
|
1 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_localhost |
|
6 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_localhost.test_func |
|
1 |
1 |
0 |
|
0% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_staging |
|
6 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_staging.test_func |
|
1 |
1 |
0 |
|
0% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_production |
|
6 |
0 |
0 |
|
100% |
| tests/test_decorators.py |
TestDecorators.test_redirect_uppercase_to_lowercase_production.test_func |
|
1 |
1 |
0 |
|
0% |
| tests/test_decorators.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
MockCookies.__init__ |
|
1 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
MockCookies.set_cookie |
|
1 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
MockCookies.get |
|
1 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
MockRequest.__init__ |
|
3 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.setUp |
|
1 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.test_param_redirect_capture_matches |
|
5 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.test_param_redirect_capture_matches_order |
|
5 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.test_param_redirect_capture_matches_args |
|
5 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.test_param_redirect_capture_does_not_match |
|
4 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.test_param_redirect_exec |
|
5 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.test_param_redirect_exec_no_match_path |
|
6 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
TestParamRedirect.test_param_redirect_exec_no_cookie |
|
6 |
0 |
0 |
|
100% |
| tests/test_param_redirect.py |
(no function) |
|
22 |
1 |
0 |
|
95% |
| tests/test_routes.py |
TestRoutes.setUp |
|
2 |
0 |
0 |
|
100% |
| tests/test_routes.py |
TestRoutes.test_homepage |
|
1 |
0 |
0 |
|
100% |
| tests/test_routes.py |
(no function) |
|
7 |
1 |
0 |
|
86% |
| tests/test_search.py |
TestSearchPackage.setUp |
|
4 |
0 |
0 |
|
100% |
| tests/test_search.py |
TestSearchPackage.test_all_charms |
|
9 |
0 |
0 |
|
100% |
| tests/test_search.py |
TestSearchPackage.test_all_bundles |
|
9 |
0 |
0 |
|
100% |
| tests/test_search.py |
TestAllSearchView.setUp |
|
1 |
0 |
0 |
|
100% |
| tests/test_search.py |
TestAllSearchView.test_search |
|
18 |
0 |
0 |
|
100% |
| tests/test_search.py |
TestAllSearchView.test_search_all_docs |
|
6 |
0 |
0 |
|
100% |
| tests/test_search.py |
TestAllSearchView.test_search_all_topics |
|
8 |
0 |
0 |
|
100% |
| tests/test_search.py |
TestAllSearchView.test_search_with_limit |
|
18 |
0 |
0 |
|
100% |
| tests/test_search.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| tests/test_status_banner.py |
TestStatusBanner.setUp |
|
3 |
0 |
0 |
|
100% |
| tests/test_status_banner.py |
TestStatusBanner.test_banner_rendered_when_status_banner_set |
|
7 |
0 |
0 |
|
100% |
| tests/test_status_banner.py |
TestStatusBanner.test_banner_hidden_when_status_banner_empty |
|
4 |
0 |
0 |
|
100% |
| tests/test_status_banner.py |
TestStatusBanner.test_publisher_layout_uses_banner |
|
6 |
0 |
0 |
|
100% |
| tests/test_status_banner.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| tests/utils/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
TestEmailer.setUp |
|
2 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
TestEmailer.test_send_email_success |
|
12 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
TestEmailer.test_send_email_template_success |
|
11 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
TestEmailer.test_validate_config_missing_fields |
|
3 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
TestEmailer.test_send_raises_smtp_exception |
|
6 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
TestEmailer.test_create_message_addresses |
|
7 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
TestEmailer.test_send_email_no_configuration |
|
4 |
0 |
0 |
|
100% |
| tests/utils/test_email.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| webapp/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| webapp/app.py |
request_hook |
|
2 |
1 |
0 |
|
50% |
| webapp/app.py |
get_account_json |
|
7 |
7 |
0 |
|
0% |
| webapp/app.py |
contact_us |
|
1 |
1 |
0 |
|
0% |
| webapp/app.py |
thank_you |
|
1 |
1 |
0 |
|
0% |
| webapp/app.py |
icon_validator |
|
1 |
1 |
0 |
|
0% |
| webapp/app.py |
site_map |
|
4 |
4 |
0 |
|
0% |
| webapp/app.py |
site_map_links |
|
5 |
5 |
0 |
|
0% |
| webapp/app.py |
site_map_operators |
|
7 |
7 |
0 |
|
0% |
| webapp/app.py |
(no function) |
|
58 |
0 |
0 |
|
100% |
| webapp/authentication.py |
is_authenticated |
|
1 |
0 |
0 |
|
100% |
| webapp/authentication.py |
empty_session |
|
3 |
0 |
0 |
|
100% |
| webapp/authentication.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| webapp/config.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| webapp/decorators.py |
strtobool |
|
1 |
0 |
0 |
|
100% |
| webapp/decorators.py |
cached_redirect |
|
3 |
0 |
0 |
|
100% |
| webapp/decorators.py |
cached_redirect.param_redirect |
|
4 |
1 |
0 |
|
75% |
| webapp/decorators.py |
login_required |
|
3 |
0 |
0 |
|
100% |
| webapp/decorators.py |
login_required.is_user_logged_in |
|
11 |
0 |
0 |
|
100% |
| webapp/decorators.py |
store_maintenance |
|
3 |
0 |
0 |
|
100% |
| webapp/decorators.py |
store_maintenance.is_store_in_maintenance |
|
3 |
1 |
0 |
|
67% |
| webapp/decorators.py |
redirect_uppercase_to_lowercase |
|
3 |
0 |
0 |
|
100% |
| webapp/decorators.py |
redirect_uppercase_to_lowercase.is_uppercase |
|
10 |
1 |
0 |
|
90% |
| webapp/decorators.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| webapp/extensions.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| webapp/handlers.py |
charmhub_utility_processor |
|
4 |
0 |
0 |
|
100% |
| webapp/handlers.py |
set_handlers |
|
17 |
0 |
0 |
|
100% |
| webapp/handlers.py |
set_handlers.utility_processor |
|
1 |
0 |
0 |
|
100% |
| webapp/handlers.py |
set_handlers.redirect_to_login |
|
2 |
0 |
0 |
|
100% |
| webapp/handlers.py |
set_handlers.handle_store_api_timeout |
|
2 |
2 |
0 |
|
0% |
| webapp/handlers.py |
set_handlers.handle_store_api_circuit_breaker_exception |
|
1 |
1 |
0 |
|
0% |
| webapp/handlers.py |
set_handlers.handle_store_api_error_list |
|
10 |
10 |
0 |
|
0% |
| webapp/handlers.py |
set_handlers.handle_macaroon_refresh_required |
|
2 |
0 |
0 |
|
100% |
| webapp/handlers.py |
set_handlers.handle_store_api_error |
|
5 |
2 |
0 |
|
60% |
| webapp/handlers.py |
set_handlers.add_headers |
|
7 |
0 |
0 |
|
100% |
| webapp/handlers.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| webapp/helpers.py |
get_yaml_loader |
|
3 |
1 |
0 |
|
67% |
| webapp/helpers.py |
is_safe_url |
|
7 |
2 |
0 |
|
71% |
| webapp/helpers.py |
get_soup |
|
2 |
0 |
0 |
|
100% |
| webapp/helpers.py |
decrease_header |
|
5 |
5 |
0 |
|
0% |
| webapp/helpers.py |
add_header_id |
|
20 |
20 |
0 |
|
0% |
| webapp/helpers.py |
modify_headers |
|
5 |
5 |
0 |
|
0% |
| webapp/helpers.py |
schedule_banner |
|
7 |
2 |
0 |
|
71% |
| webapp/helpers.py |
markdown_to_html |
|
2 |
0 |
0 |
|
100% |
| webapp/helpers.py |
sanitize_html |
|
3 |
0 |
0 |
|
100% |
| webapp/helpers.py |
param_redirect_capture |
|
10 |
0 |
0 |
|
100% |
| webapp/helpers.py |
param_redirect_exec |
|
9 |
0 |
0 |
|
100% |
| webapp/helpers.py |
get_csp_as_str |
|
5 |
0 |
0 |
|
100% |
| webapp/helpers.py |
humanize_date |
|
4 |
4 |
0 |
|
0% |
| webapp/helpers.py |
format_solution_status |
|
3 |
3 |
0 |
|
0% |
| webapp/helpers.py |
get_solution_form_value |
|
11 |
2 |
0 |
|
82% |
| webapp/helpers.py |
(no function) |
|
34 |
0 |
0 |
|
100% |
| webapp/integrations/logic.py |
Interfaces.__init__ |
|
1 |
0 |
0 |
|
100% |
| webapp/integrations/logic.py |
Interfaces.repo |
|
3 |
3 |
0 |
|
0% |
| webapp/integrations/logic.py |
Interfaces.get_interfaces |
|
14 |
14 |
0 |
|
0% |
| webapp/integrations/logic.py |
Interfaces.get_interface_from_path |
|
40 |
40 |
0 |
|
0% |
| webapp/integrations/logic.py |
Interfaces.get_h_content |
|
2 |
2 |
0 |
|
0% |
| webapp/integrations/logic.py |
Interfaces.extract_headings_and_content |
|
14 |
14 |
0 |
|
0% |
| webapp/integrations/logic.py |
Interfaces.parse_text |
|
14 |
14 |
0 |
|
0% |
| webapp/integrations/logic.py |
Interfaces.convert_readme |
|
26 |
26 |
0 |
|
0% |
| webapp/integrations/logic.py |
Interfaces.get_interface_name_from_readme |
|
2 |
2 |
0 |
|
0% |
| webapp/integrations/logic.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| webapp/integrations/views.py |
interfaces_json |
|
3 |
3 |
0 |
|
0% |
| webapp/integrations/views.py |
all_interfaces |
|
3 |
3 |
0 |
|
0% |
| webapp/integrations/views.py |
fetch_interface_details |
|
19 |
19 |
0 |
|
0% |
| webapp/integrations/views.py |
get_single_interface |
|
5 |
5 |
0 |
|
0% |
| webapp/integrations/views.py |
get_single_interface_json |
|
4 |
4 |
0 |
|
0% |
| webapp/integrations/views.py |
(no function) |
|
21 |
0 |
0 |
|
100% |
| webapp/login/macaroon.py |
MacaroonRequest.__init__ |
|
1 |
0 |
0 |
|
100% |
| webapp/login/macaroon.py |
MacaroonRequest.getExtensionArgs |
|
1 |
1 |
0 |
|
0% |
| webapp/login/macaroon.py |
MacaroonResponse.__init__ |
|
1 |
1 |
0 |
|
0% |
| webapp/login/macaroon.py |
MacaroonResponse.getExtensionArgs |
|
3 |
3 |
0 |
|
0% |
| webapp/login/macaroon.py |
MacaroonResponse.fromSuccessResponse |
|
11 |
11 |
0 |
|
0% |
| webapp/login/macaroon.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| webapp/login/views.py |
get_caveat_id |
|
7 |
2 |
0 |
|
71% |
| webapp/login/views.py |
logout |
|
2 |
0 |
0 |
|
100% |
| webapp/login/views.py |
publisher_login |
|
10 |
2 |
0 |
|
80% |
| webapp/login/views.py |
login_callback |
|
15 |
1 |
0 |
|
93% |
| webapp/login/views.py |
(no function) |
|
26 |
0 |
0 |
|
100% |
| webapp/observability/utils.py |
trace_function |
|
3 |
0 |
0 |
|
100% |
| webapp/observability/utils.py |
trace_function.wrapper |
|
2 |
0 |
0 |
|
100% |
| webapp/observability/utils.py |
start_span |
|
1 |
1 |
0 |
|
0% |
| webapp/observability/utils.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| webapp/packages/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| webapp/packages/logic.py |
get_icon |
|
4 |
4 |
0 |
|
0% |
| webapp/packages/logic.py |
fetch_packages |
|
30 |
30 |
0 |
|
0% |
| webapp/packages/logic.py |
fetch_package |
|
4 |
4 |
0 |
|
0% |
| webapp/packages/logic.py |
get_bundle_charms |
|
9 |
9 |
0 |
|
0% |
| webapp/packages/logic.py |
parse_package_for_card |
|
31 |
31 |
0 |
|
0% |
| webapp/packages/logic.py |
paginate |
|
9 |
9 |
0 |
|
0% |
| webapp/packages/logic.py |
get_packages |
|
7 |
7 |
0 |
|
0% |
| webapp/packages/logic.py |
get_store_categories |
|
13 |
13 |
0 |
|
0% |
| webapp/packages/logic.py |
get_package |
|
7 |
7 |
0 |
|
0% |
| webapp/packages/logic.py |
(no function) |
|
30 |
0 |
0 |
|
100% |
| webapp/packages/store_packages.py |
get_store_packages |
|
4 |
4 |
0 |
|
0% |
| webapp/packages/store_packages.py |
package |
|
4 |
4 |
0 |
|
0% |
| webapp/packages/store_packages.py |
get_store_package |
|
3 |
3 |
0 |
|
0% |
| webapp/packages/store_packages.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| webapp/publisher/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| webapp/publisher/form_processors.py |
extract_basic_form_fields |
|
2 |
2 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
extract_charms_data |
|
1 |
1 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
extract_useful_links_data |
|
7 |
7 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
extract_use_cases_data |
|
7 |
7 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
extract_maintainers_data |
|
2 |
2 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
extract_categories_data |
|
2 |
2 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
extract_platform_data |
|
2 |
2 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
extract_platform_data.clean_list |
|
1 |
1 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
process_solution_form_data |
|
9 |
9 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
create_error_context |
|
1 |
1 |
0 |
|
0% |
| webapp/publisher/form_processors.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| webapp/publisher/logic.py |
process_releases |
|
20 |
1 |
0 |
|
95% |
| webapp/publisher/logic.py |
get_all_architectures |
|
7 |
0 |
0 |
|
100% |
| webapp/publisher/logic.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
paginate_pages |
|
22 |
17 |
0 |
|
23% |
| webapp/publisher/views.py |
render_solution_form_with_errors |
|
5 |
5 |
0 |
|
0% |
| webapp/publisher/views.py |
solutions_csrf_token |
|
4 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
get_account_details |
|
1 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
get_package_unlisted |
|
11 |
11 |
0 |
|
0% |
| webapp/publisher/views.py |
get_package_metadata |
|
8 |
1 |
0 |
|
88% |
| webapp/publisher/views.py |
clear_listing_caches |
|
6 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
get_publisher |
|
4 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
get_package |
|
3 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
update_package |
|
21 |
4 |
0 |
|
81% |
| webapp/publisher/views.py |
list_page |
|
21 |
2 |
0 |
|
90% |
| webapp/publisher/views.py |
solutions_page |
|
4 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
accept_invite |
|
1 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
accept_post_invite |
|
30 |
8 |
0 |
|
73% |
| webapp/publisher/views.py |
reject_post_invite |
|
25 |
17 |
0 |
|
32% |
| webapp/publisher/views.py |
get_collaborators |
|
12 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
get_pending_invites |
|
12 |
5 |
0 |
|
58% |
| webapp/publisher/views.py |
invite_collaborators |
|
24 |
12 |
0 |
|
50% |
| webapp/publisher/views.py |
revoke_invite |
|
15 |
8 |
0 |
|
47% |
| webapp/publisher/views.py |
register_name |
|
12 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
post_register_name |
|
19 |
4 |
0 |
|
79% |
| webapp/publisher/views.py |
register_name_dispute |
|
4 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
register_name_dispute_thank_you |
|
4 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
delete_package |
|
7 |
0 |
0 |
|
100% |
| webapp/publisher/views.py |
post_create_track |
|
13 |
3 |
0 |
|
77% |
| webapp/publisher/views.py |
get_releases |
|
17 |
5 |
0 |
|
71% |
| webapp/publisher/views.py |
validate_solution_name |
|
5 |
5 |
0 |
|
0% |
| webapp/publisher/views.py |
show_register_solution_form |
|
4 |
4 |
0 |
|
0% |
| webapp/publisher/views.py |
submit_register_solution |
|
16 |
16 |
0 |
|
0% |
| webapp/publisher/views.py |
edit_solution_form |
|
15 |
7 |
0 |
|
53% |
| webapp/publisher/views.py |
cleanup_old_previews |
|
4 |
4 |
0 |
|
0% |
| webapp/publisher/views.py |
submit_edit_solution |
|
29 |
29 |
0 |
|
0% |
| webapp/publisher/views.py |
(no function) |
|
126 |
0 |
0 |
|
100% |
| webapp/search/logic.py |
search_topics |
|
43 |
43 |
0 |
|
0% |
| webapp/search/logic.py |
search_docs |
|
10 |
10 |
0 |
|
0% |
| webapp/search/logic.py |
search_charms |
|
7 |
7 |
0 |
|
0% |
| webapp/search/logic.py |
search_bundles |
|
7 |
7 |
0 |
|
0% |
| webapp/search/logic.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| webapp/search/views.py |
all_search |
|
1 |
1 |
0 |
|
0% |
| webapp/search/views.py |
all_search_json |
|
12 |
2 |
0 |
|
83% |
| webapp/search/views.py |
all_charms |
|
15 |
1 |
0 |
|
93% |
| webapp/search/views.py |
all_docs |
|
4 |
0 |
0 |
|
100% |
| webapp/search/views.py |
all_topics |
|
14 |
1 |
0 |
|
93% |
| webapp/search/views.py |
validate_charm |
|
11 |
11 |
0 |
|
0% |
| webapp/search/views.py |
(no function) |
|
27 |
0 |
0 |
|
100% |
| webapp/solutions/auth.py |
login |
|
8 |
8 |
0 |
|
0% |
| webapp/solutions/auth.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| webapp/solutions/logic.py |
get_solution_categories |
|
9 |
0 |
0 |
|
100% |
| webapp/solutions/logic.py |
map_category_slugs_to_display |
|
4 |
0 |
0 |
|
100% |
| webapp/solutions/logic.py |
get_cached_token |
|
4 |
1 |
0 |
|
75% |
| webapp/solutions/logic.py |
refresh_token |
|
4 |
0 |
0 |
|
100% |
| webapp/solutions/logic.py |
make_authenticated_request |
|
10 |
3 |
0 |
|
70% |
| webapp/solutions/logic.py |
get_solution_from_backend |
|
18 |
0 |
0 |
|
100% |
| webapp/solutions/logic.py |
get_published_solution_by_name |
|
7 |
7 |
0 |
|
0% |
| webapp/solutions/logic.py |
solution_name_exists |
|
8 |
8 |
0 |
|
0% |
| webapp/solutions/logic.py |
get_publisher_solutions |
|
8 |
0 |
0 |
|
100% |
| webapp/solutions/logic.py |
register_solution |
|
15 |
15 |
0 |
|
0% |
| webapp/solutions/logic.py |
update_solution |
|
17 |
17 |
0 |
|
0% |
| webapp/solutions/logic.py |
get_user_teams_for_solutions |
|
9 |
9 |
0 |
|
0% |
| webapp/solutions/logic.py |
group_solution_drafts |
|
9 |
0 |
0 |
|
100% |
| webapp/solutions/logic.py |
(no function) |
|
24 |
0 |
0 |
|
100% |
| webapp/solutions/views.py |
get_charm_data |
|
11 |
11 |
0 |
|
0% |
| webapp/solutions/views.py |
render_solution |
|
29 |
29 |
0 |
|
0% |
| webapp/solutions/views.py |
render_solution.fetch |
|
1 |
1 |
0 |
|
0% |
| webapp/solutions/views.py |
solution_preview |
|
5 |
5 |
0 |
|
0% |
| webapp/solutions/views.py |
solution_preview_draft |
|
21 |
21 |
0 |
|
0% |
| webapp/solutions/views.py |
solution_details |
|
10 |
10 |
0 |
|
0% |
| webapp/solutions/views.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| webapp/store/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
get_summary |
|
4 |
1 |
0 |
|
75% |
| webapp/store/logic.py |
get_description |
|
4 |
1 |
0 |
|
75% |
| webapp/store/logic.py |
get_banner_url |
|
4 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
get_channel_map |
|
7 |
7 |
0 |
|
0% |
| webapp/store/logic.py |
convert_channel_maps |
|
34 |
5 |
0 |
|
85% |
| webapp/store/logic.py |
process_revision |
|
7 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
extract_resources |
|
5 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
extract_default_release_architectures |
|
9 |
2 |
0 |
|
78% |
| webapp/store/logic.py |
extract_all_arch |
|
19 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
extract_series |
|
7 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
extract_bases |
|
17 |
1 |
0 |
|
94% |
| webapp/store/logic.py |
convert_date |
|
5 |
1 |
0 |
|
80% |
| webapp/store/logic.py |
get_icons |
|
2 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
get_docs_topic_id |
|
10 |
5 |
0 |
|
50% |
| webapp/store/logic.py |
convert_categories |
|
6 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
add_store_front_data |
|
36 |
7 |
0 |
|
81% |
| webapp/store/logic.py |
get_bundle_charms |
|
9 |
9 |
0 |
|
0% |
| webapp/store/logic.py |
process_python_docs |
|
4 |
4 |
0 |
|
0% |
| webapp/store/logic.py |
process_libraries |
|
5 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
get_library |
|
4 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
format_slug |
|
1 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
add_overlay_data |
|
3 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
get_doc_link |
|
2 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
get_revisions |
|
2 |
0 |
0 |
|
100% |
| webapp/store/logic.py |
(no function) |
|
63 |
0 |
0 |
|
100% |
| webapp/store/views.py |
get_libraries |
|
7 |
0 |
0 |
|
100% |
| webapp/store/views.py |
get_package_details |
|
7 |
0 |
0 |
|
100% |
| webapp/store/views.py |
get_publisher_details |
|
12 |
0 |
0 |
|
100% |
| webapp/store/views.py |
get_packages |
|
30 |
0 |
0 |
|
100% |
| webapp/store/views.py |
get_package |
|
16 |
4 |
0 |
|
75% |
| webapp/store/views.py |
package_has_sboms |
|
8 |
0 |
0 |
|
100% |
| webapp/store/views.py |
get_sbom |
|
4 |
4 |
0 |
|
0% |
| webapp/store/views.py |
details_overview |
|
60 |
28 |
0 |
|
53% |
| webapp/store/views.py |
details_docs |
|
33 |
33 |
0 |
|
0% |
| webapp/store/views.py |
details_configuration |
|
17 |
17 |
0 |
|
0% |
| webapp/store/views.py |
details_actions |
|
4 |
4 |
0 |
|
0% |
| webapp/store/views.py |
details_libraries |
|
7 |
7 |
0 |
|
0% |
| webapp/store/views.py |
details_library |
|
12 |
12 |
0 |
|
0% |
| webapp/store/views.py |
details_library_source_code |
|
9 |
9 |
0 |
|
0% |
| webapp/store/views.py |
download_library |
|
10 |
10 |
0 |
|
0% |
| webapp/store/views.py |
details_integrations |
|
4 |
4 |
0 |
|
0% |
| webapp/store/views.py |
details_integrations_data |
|
8 |
8 |
0 |
|
0% |
| webapp/store/views.py |
add_required_fields |
|
2 |
2 |
0 |
|
0% |
| webapp/store/views.py |
details_resources |
|
6 |
6 |
0 |
|
0% |
| webapp/store/views.py |
details_resource |
|
25 |
25 |
0 |
|
0% |
| webapp/store/views.py |
details_integrate |
|
3 |
3 |
0 |
|
0% |
| webapp/store/views.py |
entity_badge |
|
26 |
26 |
0 |
|
0% |
| webapp/store/views.py |
entity_embedded_card |
|
12 |
12 |
0 |
|
0% |
| webapp/store/views.py |
entity_embedded_interface_card |
|
9 |
9 |
0 |
|
0% |
| webapp/store/views.py |
entity_icon |
|
9 |
9 |
0 |
|
0% |
| webapp/store/views.py |
entity_icon_missing |
|
9 |
9 |
0 |
|
0% |
| webapp/store/views.py |
get_charms_from_bundle |
|
4 |
4 |
0 |
|
0% |
| webapp/store/views.py |
store_index |
|
2 |
0 |
0 |
|
100% |
| webapp/store/views.py |
(no function) |
|
129 |
0 |
0 |
|
100% |
| webapp/store_api.py |
decorate_all_methods |
|
9 |
0 |
0 |
|
100% |
| webapp/store_api.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| webapp/topics/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| webapp/topics/views.py |
TopicParser.parse_topic |
|
5 |
5 |
0 |
|
0% |
| webapp/topics/views.py |
TopicParser._parse_packages |
|
19 |
19 |
0 |
|
0% |
| webapp/topics/views.py |
TopicParser._replace_packages |
|
4 |
4 |
0 |
|
0% |
| webapp/topics/views.py |
topics_json |
|
18 |
18 |
0 |
|
0% |
| webapp/topics/views.py |
all_topics |
|
4 |
4 |
0 |
|
0% |
| webapp/topics/views.py |
topic_page |
|
24 |
24 |
0 |
|
0% |
| webapp/topics/views.py |
(no function) |
|
35 |
0 |
0 |
|
100% |
| webapp/utils/emailer.py |
Emailer.__init__ |
|
5 |
0 |
0 |
|
100% |
| webapp/utils/emailer.py |
Emailer._validate_config |
|
3 |
1 |
0 |
|
67% |
| webapp/utils/emailer.py |
Emailer._create_message |
|
10 |
0 |
0 |
|
100% |
| webapp/utils/emailer.py |
Emailer._send |
|
15 |
2 |
0 |
|
87% |
| webapp/utils/emailer.py |
Emailer.send_email |
|
1 |
0 |
0 |
|
100% |
| webapp/utils/emailer.py |
Emailer.send_email_template |
|
2 |
0 |
0 |
|
100% |
| webapp/utils/emailer.py |
get_emailer |
|
2 |
0 |
0 |
|
100% |
| webapp/utils/emailer.py |
(no function) |
|
22 |
0 |
0 |
|
100% |