Coverage report: 81%

Files Functions Classes

coverage.py v7.8.0, created at 2025-04-28 22:05 +0000

File function statements missing excluded coverage
tests/__init__.py (no function) 2 0 0 100%
tests/admin/__init__.py (no function) 0 0 0 100%
tests/admin/admin_endpoint_testing.py TestAdminEndpoints._log_in 7 0 0 100%
tests/admin/admin_endpoint_testing.py TestAdminEndpoints.setUp 3 0 0 100%
tests/admin/admin_endpoint_testing.py (no function) 6 0 0 100%
tests/admin/test_brand_store.py TestGetBrandStoreEndpoint.test_successful_get_brand_store 6 0 0 100%
tests/admin/test_brand_store.py TestGetBrandStoreEndpoint.test_failed_get_brand_store 6 0 0 100%
tests/admin/test_brand_store.py (no function) 8 0 0 100%
tests/admin/tests_models.py TestModelServiceEndpoints.setUp 2 0 0 100%
tests/admin/tests_models.py TestGetModels.test_get_models 5 0 0 100%
tests/admin/tests_models.py TestGetModels.test_store_has_no_models 7 0 0 100%
tests/admin/tests_models.py TestGetModels.test_invalid_store_id 6 0 0 100%
tests/admin/tests_models.py TestGetModels.test_unauthorized_user 6 0 0 100%
tests/admin/tests_models.py TestCreateModel.test_create_model 6 0 0 100%
tests/admin/tests_models.py TestCreateModel.test_create_model_with_invalid_api_key 6 0 0 100%
tests/admin/tests_models.py TestCreateModel.test_name_too_long 6 0 0 100%
tests/admin/tests_models.py TestCreateModel.test_missing_name 6 0 0 100%
tests/admin/tests_models.py TestUpdateModel.test_update_model 6 0 0 100%
tests/admin/tests_models.py TestUpdateModel.test_update_model_with_invalid_api_key 6 0 0 100%
tests/admin/tests_models.py TestUpdateModel.test_model_not_found 7 0 0 100%
tests/admin/tests_models.py (no function) 29 0 0 100%
tests/admin/tests_policies.py TestGetPolicies.test_get_policies 6 0 0 100%
tests/admin/tests_policies.py TestGetPolicies.test_failed_get_policies 6 0 0 100%
tests/admin/tests_policies.py TestCreatePolicies.test_create_policy 7 0 0 100%
tests/admin/tests_policies.py TestCreatePolicies.test_missing_signing_key 7 0 0 100%
tests/admin/tests_policies.py TestCreatePolicies.test_invalid_signing_key 7 0 0 100%
tests/admin/tests_policies.py TestCreatePolicies.test_exception_in_create_policy 8 0 0 100%
tests/admin/tests_policies.py TestDeletePolicies.test_successful_delete_policy 5 0 0 100%
tests/admin/tests_policies.py TestDeletePolicies.test_policy_not_found 6 0 0 100%
tests/admin/tests_policies.py TestDeletePolicies.test_exception_in_delete_policy 6 0 0 100%
tests/admin/tests_policies.py (no function) 26 0 0 100%
tests/admin/tests_signing_keys.py TestGetSigningKeys.test_get_signing_keys 6 0 0 100%
tests/admin/tests_signing_keys.py TestGetSigningKeys.test_failed_get_signing_keys 6 0 0 100%
tests/admin/tests_signing_keys.py TestCreateSigningKeys.test_create_signing_key 6 0 0 100%
tests/admin/tests_signing_keys.py TestCreateSigningKeys.test_name_too_long_create_signing_key 6 0 0 100%
tests/admin/tests_signing_keys.py TestCreateSigningKeys.test_exception_in_create_signing_key 7 0 0 100%
tests/admin/tests_signing_keys.py TestDeleteSigningKeys.test_successful_delete_signing_key 5 0 0 100%
tests/admin/tests_signing_keys.py TestDeleteSigningKeys.test_signing_key_in_use 8 0 0 100%
tests/admin/tests_signing_keys.py TestDeleteSigningKeys.test_signing_key_not_found 6 0 0 100%
tests/admin/tests_signing_keys.py (no function) 23 0 0 100%
tests/admin/tests_update_featured_snaps.py TestUpdateFeaturedSnaps.setUp 6 0 0 100%
tests/admin/tests_update_featured_snaps.py TestUpdateFeaturedSnaps.tearDown 1 0 0 100%
tests/admin/tests_update_featured_snaps.py TestUpdateFeaturedSnaps.test_update_featured_snaps 12 0 0 100%
tests/admin/tests_update_featured_snaps.py TestUpdateFeaturedSnaps.test_update_featured_snaps_no_snaps 14 0 0 100%
tests/admin/tests_update_featured_snaps.py TestUpdateFeaturedSnaps.test_update_featured_snaps_delete_failed 12 0 0 100%
tests/admin/tests_update_featured_snaps.py TestUpdateFeaturedSnaps.test_update_featured_snaps_update_failed 13 0 0 100%
tests/admin/tests_update_featured_snaps.py (no function) 9 0 0 100%
tests/api/__init__.py (no function) 0 0 0 100%
tests/api/test_github.py GitHubTest._get_vcr_kwargs 1 0 0 100%
tests/api/test_github.py GitHubTest.setUp 2 0 0 100%
tests/api/test_github.py GitHubTest.test_get_user 6 0 0 100%
tests/api/test_github.py GitHubTest.test_get_user_repositories 4 0 0 100%
tests/api/test_github.py GitHubTest.test_get_org_repositories 4 0 0 100%
tests/api/test_github.py GitHubTest.test_get_orgs 3 0 0 100%
tests/api/test_github.py GitHubTest.test_check_permissions_over_repo 4 0 0 100%
tests/api/test_github.py GitHubTest.test_get_snapcraft_yaml_location 10 0 0 100%
tests/api/test_github.py GitHubTest.test_get_snapcraft_yaml_data 4 0 0 100%
tests/api/test_github.py (no function) 14 0 0 100%
tests/api/test_marketo_api.py Marketo.test_auth 11 0 0 100%
tests/api/test_marketo_api.py Marketo.test_get_user 7 0 0 100%
tests/api/test_marketo_api.py Marketo.test_get_newsletter_subscription 7 0 0 100%
tests/api/test_marketo_api.py Marketo.test_get_newsletter_subscription_bad_response 7 0 0 100%
tests/api/test_marketo_api.py Marketo.test_set_newsletter_subscription 6 0 0 100%
tests/api/test_marketo_api.py Marketo.test_token_refresh 11 0 0 100%
tests/api/test_marketo_api.py (no function) 18 0 0 100%
tests/docs/__init__.py (no function) 0 0 0 100%
tests/first_snap/__init__.py (no function) 0 0 0 100%
tests/first_snap/tests_views.py FirstSnap.create_app 3 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_yaml 3 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_yaml_error 3 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_language 4 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_language_404 2 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_package 6 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_package_snap_name 7 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_package_404_language 2 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_snapcraft_yaml 3 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_snapcraft_yaml_404 2 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_build_and_test 5 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_build_and_test_snap_name 7 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_build_and_test_404_language 2 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_build_and_test_404_os 2 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_upload 7 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_upload_snap_name 9 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_upload_logged_in 10 0 0 100%
tests/first_snap/tests_views.py FirstSnap.test_get_upload_404 2 0 0 100%
tests/first_snap/tests_views.py (no function) 27 0 0 100%
tests/login/__init__.py (no function) 0 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.setUp 2 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.create_app 4 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.test_redirect_user_logged_in 7 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.test_redirect_user_logged_in_next_url 7 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.test_login_handler_redirect 7 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.test_login_api_500 4 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.test_login_api_401 5 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest.test_login_connection_error 3 0 0 100%
tests/login/tests_login_handler.py AfterLoginHandlerTest.create_app 4 0 0 100%
tests/login/tests_login_handler.py AfterLoginHandlerTest.create_app._test_after_login 2 0 0 100%
tests/login/tests_login_handler.py AfterLoginHandlerTest.prepare_mock_response 8 0 0 100%
tests/login/tests_login_handler.py AfterLoginHandlerTest.test_is_canonical_true_if_email_ends_with_canonical_on_staging 6 0 0 100%
tests/login/tests_login_handler.py AfterLoginHandlerTest.test_is_canonical_true_if_member_of_team_on_production 6 0 0 100%
tests/login/tests_login_handler.py AfterLoginHandlerTest.test_is_canonical_false_if_not_member_of_team_on_production 6 0 0 100%
tests/login/tests_login_handler.py (no function) 40 0 0 100%
tests/metrics/__init__.py (no function) 0 0 0 100%
tests/metrics/tests_metrics.py OsMetricTest.test_build_os_info 4 0 0 100%
tests/metrics/tests_metrics.py (no function) 4 0 0 100%
tests/publisher/__init__.py (no function) 0 0 0 100%
tests/publisher/cve/__init__.py (no function) 0 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.setUp 1 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_filter_by_cvss_severity 3 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_filter_by_ubuntu_priority 3 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_filter_by_usn_id 3 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_filter_by_binary_name 3 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_filter_by_binary_status 3 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_filter_by_two_different_fields 3 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_filter_by_two_same_fields 4 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest.test_no_matching_filters 2 0 0 100%
tests/publisher/cve/test_cve_filter_data.py (no function) 12 0 0 100%
tests/publisher/cve/test_cve_get_by_revision.py CveHGetByRevisionTest.setUp 2 0 0 100%
tests/publisher/cve/test_cve_get_by_revision.py CveHGetByRevisionTest.test_get_cve_by_revision 37 0 0 100%
tests/publisher/cve/test_cve_get_by_revision.py CveHGetByRevisionTest.test_get_cve_by_revision_metadata_not_found 3 0 0 100%
tests/publisher/cve/test_cve_get_by_revision.py CveHGetByRevisionTest.test_get_cve_by_revision_file_content_not_found 3 0 0 100%
tests/publisher/cve/test_cve_get_by_revision.py (no function) 13 0 0 100%
tests/publisher/cve/test_cve_paginate_data.py CvePaginateDataTest.setUp 1 0 0 100%
tests/publisher/cve/test_cve_paginate_data.py CvePaginateDataTest.test_paginate_cve_list 7 0 0 100%
tests/publisher/cve/test_cve_paginate_data.py (no function) 5 0 0 100%
tests/publisher/cve/test_cve_sort_data.py CveSortDataTest.setUp 1 0 0 100%
tests/publisher/cve/test_cve_sort_data.py CveSortDataTest.test_sort_by_cvss_severity_asc 2 0 0 100%
tests/publisher/cve/test_cve_sort_data.py CveSortDataTest.test_sort_by_cvss_severity_desc 2 0 0 100%
tests/publisher/cve/test_cve_sort_data.py CveSortDataTest.test_sort_by_ubuntu_priority_asc 2 0 0 100%
tests/publisher/cve/test_cve_sort_data.py CveSortDataTest.test_sort_by_cvss_score_desc 2 0 0 100%
tests/publisher/cve/test_cve_sort_data.py CveSortDataTest.test_sort_by_unknown_field 2 0 0 100%
tests/publisher/cve/test_cve_sort_data.py (no function) 9 0 0 100%
tests/publisher/cve/test_cve_user_access.py CveUserAccessTest.test_can_snap_publisher_access_cve_data 5 0 0 100%
tests/publisher/cve/test_cve_user_access.py CveUserAccessTest.test_can_admin_access_cve_data 5 0 0 100%
tests/publisher/cve/test_cve_user_access.py CveUserAccessTest.test_can_canonical_publisher_access_cve_data_of_global_canonical_snap 6 0 0 100%
tests/publisher/cve/test_cve_user_access.py CveUserAccessTest.test_can_collaborator_access_cve_data_of_global_snap 6 0 0 100%
tests/publisher/cve/test_cve_user_access.py CveUserAccessTest.test_non_collab_publisher_user_fail_access_cve_data_of_global_snap 6 0 0 100%
tests/publisher/cve/test_cve_user_access.py CveUserAccessTest.test_non_collab_publisher_user_fail_access_cve_data_of_brand_snap 6 0 0 100%
tests/publisher/cve/test_cve_user_access.py (no function) 16 0 0 100%
tests/publisher/cve/test_has_cve.py HasRevisionsWithCvesTest.test_returns_revision_numbers 3 0 0 100%
tests/publisher/cve/test_has_cve.py HasRevisionsWithCvesTest.test_ignores_non_yaml_files 3 0 0 100%
tests/publisher/cve/test_has_cve.py HasRevisionsWithCvesTest.test_returns_empty_list_if_no_revision_files 3 0 0 100%
tests/publisher/cve/test_has_cve.py HasRevisionsWithCvesTest.test_returns_empty_list_on_not_found 3 0 0 100%
tests/publisher/cve/test_has_cve.py (no function) 13 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestEndpoints.setUp 3 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestEndpoints._log_in 6 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestEndpoints._set_user_is_canonical 1 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestModelServiceEndpoints.test_has_cves_for_canonical_user 6 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestModelServiceEndpoints.test_has_cves_no_data 5 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestModelServiceEndpoints.test_has_cves_for_non_canonical_user 4 0 0 100%
tests/publisher/cve/test_has_cve_api.py (no function) 15 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.BaseAppTesting.setUp 3 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.BaseAppTesting.tearDown 1 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.BaseAppTesting.create_app 4 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.BaseAppTesting._get_location 1 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.BaseAppTesting._log_in 8 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.BaseAppTesting.check_call_by_api_url 6 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedOut.setUp 2 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedOut.test_access_not_logged_in 5 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedIn.setUp 6 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedIn.test_timeout 8 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedIn.test_connection_error 8 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedIn.test_broken_json 8 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedIn.test_unknown_error 8 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedIn.test_expired_macaroon 11 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedInErrorHandling.test_error_4xx 9 3 0 67%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedInErrorHandling.test_custom_error 9 3 0 67%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedInErrorHandling.test_account_not_signed_agreement_logged_in 10 3 0 70%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedInErrorHandling.test_account_no_username_logged_in 10 3 0 70%
tests/publisher/endpoint_testing.py (no function) 39 0 0 100%
tests/publisher/snaps/__init__.py (no function) 0 0 0 100%
tests/publisher/snaps/test_builds.py TestBuildStateMapper.test_build_state_mappings 4 0 0 100%
tests/publisher/snaps/test_builds.py (no function) 4 0 0 100%
tests/publisher/snaps/test_logic.py LogicTest.test_get_snap_names_by_ownership 4 0 0 100%
tests/publisher/snaps/test_logic.py (no function) 4 0 0 100%
tests/publisher/snaps/test_post_preview.py PostPreviewPageNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/test_post_preview.py PostPreviewPage.setUp 5 0 0 100%
tests/publisher/snaps/test_post_preview.py PostPreviewPage.test_renders_template 11 0 0 100%
tests/publisher/snaps/test_post_preview.py (no function) 9 0 0 100%
tests/publisher/snaps/test_release_history_json.py GetReleaseHistoryJsonNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/test_release_history_json.py GetReleasesHistoryJson.setUp 5 0 0 100%
tests/publisher/snaps/test_release_history_json.py GetReleasesHistoryJson.test_get_releases 5 0 0 100%
tests/publisher/snaps/test_release_history_json.py GetReleasesHistoryJson.test_404 5 0 0 100%
tests/publisher/snaps/test_release_history_json.py GetReleasesHistoryJson.test_5XX 5 0 0 100%
tests/publisher/snaps/test_release_history_json.py (no function) 12 0 0 100%
tests/publisher/snaps/tests_get_metrics.py MetricsPageNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceAnnotationGetInfo.setUp 5 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceMetrics.create_app 4 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceMetrics.test_get_active_devices_weekly_installed_by_version 15 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceMetrics.test_get_active_devices_weekly_installed_by_channel 15 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceMetrics.test_get_active_devices_weekly_installed_by_os 14 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceMetrics.test_get_active_devices_in_3_months_period 14 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetMetricAnnotation.create_app 4 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetMetricAnnotation.test_get_active_devices_weekly_installed_by_version 8 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetCountryMetric.create_app 4 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetCountryMetric.test_get_active_devices_weekly_installed_by_version 18 0 0 100%
tests/publisher/snaps/tests_get_metrics.py (no function) 56 0 0 100%
tests/publisher/snaps/tests_listing.py ListingPageNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.setUp 5 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.test_page_not_found 6 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.test_account_logged_in 8 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.test_icon 6 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.test_screenshots 6 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.test_banner_images 6 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.test_videos 6 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage.test_failed_categories_api 6 0 0 100%
tests/publisher/snaps/tests_listing.py (no function) 20 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostCloseChannelPageNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelGetSnapIdPage.setUp 6 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelGetSnapIdPage.test_page_not_found 6 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelGetSnapIdPage.test_error_4xx 6 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelPage.setUp 9 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelPage.test_page_not_found 6 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelPage.test_post_no_data 3 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelPage.test_post_data 6 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelPage.test_return_error 6 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelPage.test_error_4xx 7 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py (no function) 21 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrackNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrackGetSnapId.setUp 6 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrackGetSnapId.test_page_not_found 6 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrackGetSnapId.test_error_4xx 6 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrack.setUp 9 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrack.test_page_not_found 6 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrack.test_post_no_data 3 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrack.test_post_data 6 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrack.test_return_error 6 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrack.test_error_4xx 7 0 0 100%
tests/publisher/snaps/tests_post_default_track.py (no function) 21 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostListingPageNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostMetadataListingPage.setUp 7 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostMetadataListingPage.test_post_no_data 2 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostMetadataListingPage.test_update_invalid_field 3 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostMetadataListingPage.test_update_valid_field 9 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostMetadataListingPage.test_update_description_with_carriage_return 9 0 0 100%
tests/publisher/snaps/tests_post_listing.py (no function) 15 0 0 100%
tests/publisher/snaps/tests_post_release.py PostReleasePageNotAuth.setUp 3 0 0 100%
tests/publisher/snaps/tests_post_release.py PostDataReleasePage.setUp 4 0 0 100%
tests/publisher/snaps/tests_post_release.py PostDataReleasePage.test_page_not_found 9 0 0 100%
tests/publisher/snaps/tests_post_release.py PostDataReleasePage.test_post_no_data 3 0 0 100%
tests/publisher/snaps/tests_post_release.py PostDataReleasePage.test_post_data 8 0 0 100%
tests/publisher/snaps/tests_post_release.py PostDataReleasePage.test_return_error 4 0 0 100%
tests/publisher/snaps/tests_post_release.py (no function) 14 0 0 100%
tests/publisher/tests_account_logout.py LogoutRedirects.setUp 2 0 0 100%
tests/publisher/tests_account_logout.py LogoutRedirects.test_logout 3 0 0 100%
tests/publisher/tests_account_logout.py (no function) 7 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsNotAuth.setUp 2 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.setUp 3 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.test_no_snaps 13 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.test_registered_snaps 13 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.test_uploaded_snaps 13 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.test_uploaded_snaps_with_latest_release 15 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.test_uploaded_snaps_registered_snaps 15 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.test_revoked_snaps 15 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage.test_get_is_user_snap 8 0 0 100%
tests/publisher/tests_account_snaps.py (no function) 24 0 0 100%
tests/publisher/tests_account_snaps_metrics.py AccountSnapsMetricsNotAuth.setUp 2 0 0 100%
tests/publisher/tests_account_snaps_metrics.py AccountSnapsMetrics.setUp 4 0 0 100%
tests/publisher/tests_account_snaps_metrics.py AccountSnapsMetrics.test_metrics 12 0 0 100%
tests/publisher/tests_account_snaps_metrics.py AccountSnapsMetrics.test_metrics_no_payload 5 0 0 100%
tests/publisher/tests_account_snaps_metrics.py AccountSnapsMetrics.test_metrics_bad_id_payload 8 0 0 100%
tests/publisher/tests_account_snaps_metrics.py (no function) 14 0 0 100%
tests/publisher/tests_agreement.py GetAgreementPage.setUp 2 0 0 100%
tests/publisher/tests_agreement.py GetAgreementPage.test_agreement_logged_in 4 0 0 100%
tests/publisher/tests_agreement.py PostAgreementPage.setUp 4 0 0 100%
tests/publisher/tests_agreement.py PostAgreementPage.test_post_agreement_on 10 0 0 100%
tests/publisher/tests_agreement.py PostAgreementPage.test_post_agreement_off 3 0 0 100%
tests/publisher/tests_agreement.py (no function) 12 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsNotAuth.setUp 2 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsPage.setUp 3 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsPage.test_no_snaps 11 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsPage.test_uploaded_snaps 11 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsPage.test_uploaded_snaps_registered_snaps 11 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsPage.test_revoked_snaps 11 0 0 100%
tests/publisher/tests_api_snaps.py (no function) 16 0 0 100%
tests/publisher/tests_get_package_metadata.py TestGetPackageMetadata.setUp 1 1 0 0%
tests/publisher/tests_get_package_metadata.py TestGetPackageMetadata.test_get_package_metadata 10 10 0 0%
tests/publisher/tests_get_package_metadata.py (no function) 9 0 0 100%
tests/publisher/tests_post_account_details.py PostAccountDetailsPageNotAuth.setUp 2 0 0 100%
tests/publisher/tests_post_account_details.py PostAccountDetailsPage.setUp 3 0 0 100%
tests/publisher/tests_post_account_details.py PostAccountDetailsPage.test_post_account 5 0 0 100%
tests/publisher/tests_post_account_details.py PostAccountDetailsPage.test_post_account_exception 4 0 0 100%
tests/publisher/tests_post_account_details.py (no function) 13 0 0 100%
tests/publisher/tests_publisher.py TestCache.setUp 3 0 0 100%
tests/publisher/tests_publisher.py TestCache.test_cache_disabled 7 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.create_app 4 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_account 4 0 0 100%
tests/publisher/tests_publisher.py PublisherPage._log_in 8 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_username_not_logged_in 3 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_account_not_logged_in 3 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_account_redirect 4 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_username_logged_in 4 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_post_username_logged_in 11 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_post_no_username_logged_in 5 0 0 100%
tests/publisher/tests_publisher.py PublisherPage.test_post_bad_username_logged_in 13 0 0 100%
tests/publisher/tests_publisher.py (no function) 28 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_empty_snaps 4 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_only_uploaded_snaps 5 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_only_registred_snaps 5 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_all_snaps 6 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_snap_not_stable 3 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_snap_stable_not_info 3 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_snap_stable 3 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest.test_convert_date_month_year 3 0 0 100%
tests/publisher/tests_publisher_logic.py (no function) 11 0 0 100%
tests/publisher/tests_register_name.py GetRegisterNamePageNotAuth.setUp 2 0 0 100%
tests/publisher/tests_register_name.py GetRegisterNamePage.setUp 3 0 0 100%
tests/publisher/tests_register_name.py GetRegisterNamePage.test_register_name_logged_in 5 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePageNotAuth.setUp 2 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage.setUp 5 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage.test_post_snap_name 8 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage.test_post_store 10 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage.test_post_private 10 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage.test_name_already_registered 7 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage.test_name_reserved 7 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage.test_claim_dispute 5 0 0 100%
tests/publisher/tests_register_name.py (no function) 24 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJsonNotAuth.setUp 2 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJson.setUp 5 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJson.test_post_no_data 3 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJson.test_post_snap_name 9 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJson.test_name_already_registered 7 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJson.test_name_already_owned 5 0 0 100%
tests/publisher/tests_register_name_json.py (no function) 14 0 0 100%
tests/publisher/tests_reserved_name_dispute.py GetRequestReservedNameNotAuth.setUp 2 0 0 100%
tests/publisher/tests_reserved_name_dispute.py GetRequestReservedName.setUp 4 0 0 100%
tests/publisher/tests_reserved_name_dispute.py GetRequestReservedName.test_request_reserved_name_logged_in 5 0 0 100%
tests/publisher/tests_reserved_name_dispute.py GetRequestReservedName.test_request_reserved_name_redirect_no_snap_name 5 0 0 100%
tests/publisher/tests_reserved_name_dispute.py (no function) 10 0 0 100%
tests/publisher/tests_username.py GetUsernamePageNotAuth.setUp 2 0 0 100%
tests/publisher/tests_username.py GetUsernamePage.setUp 2 0 0 100%
tests/publisher/tests_username.py GetUsernamePage.test_agreement_logged_in 4 0 0 100%
tests/publisher/tests_username.py PostUsernamePageNotAuth.setUp 2 0 0 100%
tests/publisher/tests_username.py PostUsernamePage.setUp 4 0 0 100%
tests/publisher/tests_username.py PostUsernamePage.test_post_username 10 0 0 100%
tests/publisher/tests_username.py PostUsernamePage.test_post_username_empty 3 0 0 100%
tests/publisher/tests_username.py PostUsernamePage.test_post_no_data 3 0 0 100%
tests/publisher/tests_username.py (no function) 18 0 0 100%
tests/snapcraft/__init__.py (no function) 0 0 0 100%
tests/snapcraft/tests_public.py StorePage.create_app 3 0 0 100%
tests/snapcraft/tests_public.py StorePage.test_index 3 0 0 100%
tests/snapcraft/tests_public.py (no function) 8 0 0 100%
tests/store/__init__.py (no function) 0 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.setUp 3 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.create_app 4 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.test_api_404 7 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.test_api_500 7 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.test_api_500_no_answer 6 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.test_no_channel_map 4 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.test_user_connected 12 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.test_user_not_connected 7 0 0 100%
tests/store/tests_details.py GetDetailsPageTest.test_user_connected_on_not_own_snap 9 0 0 100%
tests/store/tests_details.py (no function) 21 0 0 100%
tests/store/tests_distro_page.py GetDistroPageTest.setUp 4 0 0 100%
tests/store/tests_distro_page.py GetDistroPageTest.create_app 4 0 0 100%
tests/store/tests_distro_page.py GetDistroPageTest.test_api_404 7 0 0 100%
tests/store/tests_distro_page.py GetDistroPageTest.test_api_500 7 0 0 100%
tests/store/tests_distro_page.py GetDistroPageTest.test_no_distro_data 2 0 0 100%
tests/store/tests_distro_page.py GetDistroPageTest.test_get_page 6 0 0 100%
tests/store/tests_distro_page.py (no function) 15 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.setUp 3 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.create_app 4 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.test_api_404 7 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.test_api_500 7 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.test_api_500_no_answer 6 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.test_no_channel_map 5 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.test_get_card 6 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.test_get_card_default_button 5 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest.test_get_card_white_button 5 0 0 100%
tests/store/tests_embedded_card.py (no function) 22 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.setUp 4 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.create_app 4 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_api_404 7 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_api_500 7 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_api_500_no_answer 6 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_get_badge 4 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_get_trending_empty 6 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_get_trending_is_trending 7 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_get_trending_preview_external 8 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest.test_get_trending_preview_publisher 13 0 0 100%
tests/store/tests_github_badge.py (no function) 24 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_empty_channel_map 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_one_track_channel_map 4 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_multiple_track_same_arch_channel_map 4 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_multiple_track_different_arch_channel_map 4 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_lowest_available_risk 13 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_version 5 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_no_version 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_confinement 5 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_no_confinement 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_categories 5 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_video_embed_code 12 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_convert_date_more_than_yesterday 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_convert_date_more_today 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_convert_date_timezone_yesterday 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_snap_banner 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_snap_banner_no_banner 3 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_latest_versions 22 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest.test_get_last_updated_versions 4 0 0 100%
tests/store/tests_public_logic.py (no function) 24 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest.setUp 4 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest.create_app 4 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest.test_community_publisher 3 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest.test_existant_publisher 3 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest.test_non_existant_publisher 3 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest.test_api_error 4 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest.test_no_snaps_from_api 5 0 0 100%
tests/store/tests_publisher.py (no function) 14 0 0 100%
tests/store/tests_validation_sets.py GetValidationSetsTest.test_get_validation_sets 5 5 0 0%
tests/store/tests_validation_sets.py GetValidationSetsTest.test_get_validation_set 5 5 0 0%
tests/store/tests_validation_sets.py (no function) 6 0 0 100%
tests/tests_badge_counter.py TestsBadgePrometheusCounter.setUp 3 0 0 100%
tests/tests_badge_counter.py TestsBadgePrometheusCounter.create_app 4 0 0 100%
tests/tests_badge_counter.py TestsBadgePrometheusCounter.tests_increment_counter 2 0 0 100%
tests/tests_badge_counter.py TestsBadgePrometheusCounter.tests_no_increment 4 0 0 100%
tests/tests_badge_counter.py TestsBadgePrometheusCounter.tests_increment_counter_logged_in 2 0 0 100%
tests/tests_badge_counter.py TestsBadgePrometheusCounter.tests_no_increment_logged_in 4 0 0 100%
tests/tests_badge_counter.py (no function) 10 0 0 100%
tests/tests_helpers.py GetDnsVerificationTokenTest.test_get_dns_verification_token 4 0 0 100%
tests/tests_helpers.py (no function) 6 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_title 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_urls 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_urls_title 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_italics 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_bold 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_paragraph_merging 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_paragraph 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_text 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_triple_fences 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_single_fences 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_code_block_single_line 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_code_block_multiple_line 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_code_block_multiple_line_tree_spaces 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_code_line 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_multiple_code_line 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_list 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_list_special_char 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_list_ordered 4 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser.test_parse_image_link 4 0 0 100%
tests/tests_markdown_parser.py (no function) 22 0 0 100%
tests/tests_requests.py RequestsCacheTest.test_connection_api_error 5 0 0 100%
tests/tests_requests.py RequestsCacheTest.test_timeout_api_error 5 0 0 100%
tests/tests_requests.py (no function) 10 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_generate_slug 28 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_contains 4 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_format_number 4 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_install_snippet 2 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_install_snippet_with_classic 2 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_install_snippet_with_non_stable_risk_level 2 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_display_name 4 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_join 2 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_static_url_no_file 2 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_static_url 2 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_format_date 2 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_format_member_role 8 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest.test_format_link 83 0 0 100%
tests/tests_templates_utils.py (no function) 16 0 0 100%
webapp/__init__.py (no function) 0 0 0 100%
webapp/admin/views.py get_admin 1 1 0 0%
webapp/admin/views.py get_stores 3 3 0 0%
webapp/admin/views.py get_settings 7 7 0 0%
webapp/admin/views.py post_settings 7 7 0 0%
webapp/admin/views.py get_snaps_search 2 2 0 0%
webapp/admin/views.py get_store_snaps 14 14 0 0%
webapp/admin/views.py post_manage_store_snaps 5 5 0 0%
webapp/admin/views.py get_manage_members 5 5 0 0%
webapp/admin/views.py post_manage_members 19 19 0 0%
webapp/admin/views.py get_invites 2 2 0 0%
webapp/admin/views.py post_invite_members 11 11 0 0%
webapp/admin/views.py update_invite_status 11 11 0 0%
webapp/admin/views.py get_models 15 0 0 100%
webapp/admin/views.py create_models 23 3 0 87%
webapp/admin/views.py update_model 18 2 0 89%
webapp/admin/views.py get_policies 15 3 0 80%
webapp/admin/views.py create_policy 20 0 0 100%
webapp/admin/views.py delete_policy 13 0 0 100%
webapp/admin/views.py get_brand_store 12 0 0 100%
webapp/admin/views.py get_signing_keys 14 0 0 100%
webapp/admin/views.py create_signing_key 14 0 0 100%
webapp/admin/views.py delete_signing_key 28 2 0 93%
webapp/admin/views.py post_featured_snaps 22 0 0 100%
webapp/admin/views.py (no function) 110 0 0 100%
webapp/api/__init__.py (no function) 1 0 0 100%
webapp/api/exceptions.py ApiResponseError.__init__ 2 0 0 100%
webapp/api/exceptions.py ApiResponseErrorList.__init__ 2 2 0 0%
webapp/api/exceptions.py (no function) 12 0 0 100%
webapp/api/github.py GitHub.__init__ 3 0 0 100%
webapp/api/github.py GitHub._request 11 3 0 73%
webapp/api/github.py GitHub.decompress_data 4 1 0 75%
webapp/api/github.py GitHub.get_data_from_response 10 3 0 70%
webapp/api/github.py GitHub._gql_request 11 2 0 82%
webapp/api/github.py GitHub._get_nodes 1 0 0 100%
webapp/api/github.py GitHub.get_user 2 0 0 100%
webapp/api/github.py GitHub.get_orgs 8 2 0 75%
webapp/api/github.py GitHub.get_user_repositories 8 2 0 75%
webapp/api/github.py GitHub.get_org_repositories 8 0 0 100%
webapp/api/github.py GitHub.check_permissions_over_repo 13 7 0 46%
webapp/api/github.py GitHub.check_if_repo_exists 10 10 0 0%
webapp/api/github.py GitHub.get_snapcraft_yaml_location 12 5 0 58%
webapp/api/github.py GitHub.get_default_branch 3 0 0 100%
webapp/api/github.py GitHub.get_last_commit 5 0 0 100%
webapp/api/github.py GitHub.get_snapcraft_yaml_data 19 5 0 74%
webapp/api/github.py GitHub.generate_webhook_secret_for_repo 5 5 0 0%
webapp/api/github.py GitHub.validate_webhook_signature 4 4 0 0%
webapp/api/github.py GitHub.validate_bsi_webhook_secret 5 5 0 0%
webapp/api/github.py GitHub.get_hooks 5 5 0 0%
webapp/api/github.py GitHub.get_hook_by_url 5 5 0 0%
webapp/api/github.py GitHub.update_hook_url 3 3 0 0%
webapp/api/github.py GitHub.create_hook 4 4 0 0%
webapp/api/github.py GitHub.remove_hook 2 2 0 0%
webapp/api/github.py (no function) 42 0 0 100%
webapp/api/marketo.py Marketo.__init__ 2 0 0 100%
webapp/api/marketo.py Marketo._authenticate 6 0 0 100%
webapp/api/marketo.py Marketo._process_response 13 9 0 31%
webapp/api/marketo.py Marketo.request 8 0 0 100%
webapp/api/marketo.py Marketo.get_user 4 1 0 75%
webapp/api/marketo.py Marketo.get_newsletter_subscription 2 0 0 100%
webapp/api/marketo.py Marketo.set_newsletter_subscription 3 0 0 100%
webapp/api/marketo.py (no function) 15 0 0 100%
webapp/api/requests.py BaseSession.__init__ 4 0 0 100%
webapp/api/requests.py BaseSession.request 6 0 0 100%
webapp/api/requests.py PublisherSession.request 1 0 0 100%
webapp/api/requests.py (no function) 13 0 0 100%
webapp/api/sso.py process_response 8 3 0 62%
webapp/api/sso.py post_macaroon 3 0 0 100%
webapp/api/sso.py get_refreshed_discharge 3 0 0 100%
webapp/api/sso.py (no function) 10 0 0 100%
webapp/app.py create_app 27 4 0 85%
webapp/app.py create_app.inject_csrf_token 1 0 0 100%
webapp/app.py init_extensions 1 1 0 0%
webapp/app.py (no function) 22 0 0 100%
webapp/authentication.py get_authorization_header 2 0 0 100%
webapp/authentication.py get_publishergw_authorization_header 1 0 0 100%
webapp/authentication.py is_authenticated 1 0 0 100%
webapp/authentication.py empty_session 5 0 0 100%
webapp/authentication.py get_caveat_id 3 0 0 100%
webapp/authentication.py request_macaroon 2 0 0 100%
webapp/authentication.py get_refreshed_discharge 2 0 0 100%
webapp/authentication.py is_macaroon_expired 1 1 0 0%
webapp/authentication.py (no function) 14 0 0 100%
webapp/blog/__init__.py (no function) 0 0 0 100%
webapp/blog/views.py init_blog 12 0 0 100%
webapp/blog/views.py init_blog.snap_posts 21 21 0 0%
webapp/blog/views.py init_blog.snap_series 9 9 0 0%
webapp/blog/views.py init_blog.add_newsletter 2 2 0 0%
webapp/blog/views.py init_blog.sitemap 24 24 0 0%
webapp/blog/views.py (no function) 7 0 0 100%
webapp/config.py (no function) 22 2 0 91%
webapp/decorators.py login_required 3 0 0 100%
webapp/decorators.py login_required.is_user_logged_in 4 0 0 100%
webapp/decorators.py exchange_required 2 0 0 100%
webapp/decorators.py exchange_required.is_exchanged 5 3 0 40%
webapp/decorators.py (no function) 9 0 0 100%
webapp/docs/__init__.py (no function) 0 0 0 100%
webapp/docs/views.py init_docs 4 0 0 100%
webapp/docs/views.py (no function) 7 0 0 100%
webapp/extensions.py (no function) 2 0 0 100%
webapp/first_snap/views.py transform_snapcraft_yaml 9 0 0 100%
webapp/first_snap/views.py directory_exists 1 0 0 100%
webapp/first_snap/views.py get_pick_language 1 1 0 0%
webapp/first_snap/views.py get_language 5 0 0 100%
webapp/first_snap/views.py get_language_snapcraft_yaml 13 2 0 85%
webapp/first_snap/views.py get_package 23 3 0 87%
webapp/first_snap/views.py get_build 18 3 0 83%
webapp/first_snap/views.py get_push 1 1 0 0%
webapp/first_snap/views.py get_upload 19 0 0 100%
webapp/first_snap/views.py (no function) 24 0 0 100%
webapp/handlers.py refresh_redirect 10 6 0 40%
webapp/handlers.py snapcraft_utility_processor 9 0 0 100%
webapp/handlers.py set_handlers 42 0 0 100%
webapp/handlers.py set_handlers.utility_processor 1 0 0 100%
webapp/handlers.py set_handlers.internal_error 5 1 0 80%
webapp/handlers.py set_handlers.service_unavailable 1 1 0 0%
webapp/handlers.py set_handlers.handle_resource_not_found 1 0 0 100%
webapp/handlers.py set_handlers.handle_connection_timeout 2 0 0 100%
webapp/handlers.py set_handlers.store_api_error 2 0 0 100%
webapp/handlers.py set_handlers.handle_api_error_list 11 3 0 73%
webapp/handlers.py set_handlers.handle_publisher_missing_name 1 0 0 100%
webapp/handlers.py set_handlers.handle_publisher_agreement_not_signed 1 0 0 100%
webapp/handlers.py set_handlers.handle_publisher_macaroon_refresh_required 1 0 0 100%
webapp/handlers.py set_handlers.clear_trailing 5 2 0 60%
webapp/handlers.py set_handlers.prometheus_metrics 8 0 0 100%
webapp/handlers.py set_handlers.calculate_sha256_base64 2 0 0 100%
webapp/handlers.py set_handlers.get_csp_directive 7 0 0 100%
webapp/handlers.py set_handlers.add_script_hashes_to_csp 4 0 0 100%
webapp/handlers.py set_handlers.add_headers 14 0 0 100%
webapp/handlers.py (no function) 26 0 0 100%
webapp/helpers.py get_yaml_loader 3 0 0 100%
webapp/helpers.py get_licenses 9 2 0 78%
webapp/helpers.py get_licenses._build_custom_license 1 0 0 100%
webapp/helpers.py get_file 9 0 0 100%
webapp/helpers.py get_yaml 6 0 0 100%
webapp/helpers.py dump_yaml 2 0 0 100%
webapp/helpers.py get_icon 4 0 0 100%
webapp/helpers.py get_publisher_data 17 5 0 71%
webapp/helpers.py get_dns_verification_token 4 0 0 100%
webapp/helpers.py get_csp_as_str 5 0 0 100%
webapp/helpers.py list_folders 1 1 0 0%
webapp/helpers.py (no function) 26 0 0 100%
webapp/login/macaroon.py MacaroonRequest.__init__ 1 0 0 100%
webapp/login/macaroon.py MacaroonRequest.getExtensionArgs 1 0 0 100%
webapp/login/macaroon.py MacaroonResponse.getExtensionArgs 1 1 0 0%
webapp/login/macaroon.py MacaroonResponse.fromSuccessResponse 8 8 0 0%
webapp/login/macaroon.py (no function) 12 0 0 100%
webapp/login/oauth_views.py github_auth 5 5 0 0%
webapp/login/oauth_views.py github_login_verify 13 13 0 0%
webapp/login/oauth_views.py (no function) 13 0 0 100%
webapp/login/views.py get_environment 1 0 0 100%
webapp/login/views.py login_handler 12 0 0 100%
webapp/login/views.py after_login 17 3 0 82%
webapp/login/views.py login_beta 1 1 0 0%
webapp/login/views.py logout 2 0 0 100%
webapp/login/views.py (no function) 32 0 0 100%
webapp/markdown.py SnapcraftBlockParser.parse_indent_code 4 0 0 100%
webapp/markdown.py parse_markdown_description 2 0 0 100%
webapp/markdown.py (no function) 17 0 0 100%
webapp/metrics/helper.py get_filter 1 0 0 100%
webapp/metrics/helper.py get_last_metrics_processed_date 6 1 0 83%
webapp/metrics/helper.py get_dates_for_metric 8 2 0 75%
webapp/metrics/helper.py build_metric_query_installed_base 2 2 0 0%
webapp/metrics/helper.py build_active_device_metric_query 1 0 0 100%
webapp/metrics/helper.py build_metric_query_country 2 0 0 100%
webapp/metrics/helper.py find_metric 3 0 0 100%
webapp/metrics/helper.py build_snap_installs_metrics_query 8 1 0 88%
webapp/metrics/helper.py transform_metrics 10 1 0 90%
webapp/metrics/helper.py lttb_select_indices 22 22 0 0%
webapp/metrics/helper.py normalize_series 6 6 0 0%
webapp/metrics/helper.py downsample_series 14 14 0 0%
webapp/metrics/helper.py (no function) 15 0 0 100%
webapp/metrics/metrics.py _calculate_colors 3 0 0 100%
webapp/metrics/metrics.py _calculate_color 8 2 0 75%
webapp/metrics/metrics.py _capitalize_os_name 5 0 0 100%
webapp/metrics/metrics.py Metric.__init__ 4 0 0 100%
webapp/metrics/metrics.py Metric.__iter__ 3 0 0 100%
webapp/metrics/metrics.py Metric.__bool__ 1 0 0 100%
webapp/metrics/metrics.py ActiveDevices.__init__ 2 0 0 100%
webapp/metrics/metrics.py ActiveDevices.get_number_latest_active_devices 9 1 0 89%
webapp/metrics/metrics.py CountryDevices.__init__ 4 0 0 100%
webapp/metrics/metrics.py CountryDevices.get_number_territories 5 0 0 100%
webapp/metrics/metrics.py CountryDevices._calculate_metrics_countries 20 0 0 100%
webapp/metrics/metrics.py CountryDevices._build_country_info 21 3 0 86%
webapp/metrics/metrics.py OsMetric.__init__ 2 0 0 100%
webapp/metrics/metrics.py OsMetric._build_os_info 7 0 0 100%
webapp/metrics/metrics.py (no function) 20 0 0 100%
webapp/packages/logic.py fetch_packages 32 32 0 0%
webapp/packages/logic.py fetch_package 4 4 0 0%
webapp/packages/logic.py parse_package_for_card 13 13 0 0%
webapp/packages/logic.py paginate 9 9 0 0%
webapp/packages/logic.py get_packages 12 12 0 0%
webapp/packages/logic.py format_slug 1 1 0 0%
webapp/packages/logic.py parse_categories 5 5 0 0%
webapp/packages/logic.py get_store_categories 8 8 0 0%
webapp/packages/logic.py get_snaps_account_info 24 24 0 0%
webapp/packages/logic.py get_package 3 3 0 0%
webapp/packages/logic.py (no function) 20 0 0 100%
webapp/packages/store_packages.py get_store_packages 3 3 0 0%
webapp/packages/store_packages.py package 5 5 0 0%
webapp/packages/store_packages.py get_store_package 3 3 0 0%
webapp/packages/store_packages.py (no function) 16 0 0 100%
webapp/publisher/__init__.py (no function) 0 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper._get_cve_file_metadata 6 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper._format_cve_response 12 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper._fetch_file_content 19 2 0 89%
webapp/publisher/cve/cve_helper.py CveHelper.get_revisions_with_cves 6 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper.get_cve_with_revision 4 1 0 75%
webapp/publisher/cve/cve_helper.py CveHelper.can_user_access_cve_data 13 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper._match_filters 16 1 0 94%
webapp/publisher/cve/cve_helper.py CveHelper.filter_cve_data 1 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper.sort_cve_data 10 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper.paginate_cve_list 4 0 0 100%
webapp/publisher/cve/cve_helper.py (no function) 31 0 0 100%
webapp/publisher/cve/cve_views.py can_user_access_cve_data 12 5 0 58%
webapp/publisher/cve/cve_views.py get_revisions_with_cves 7 0 0 100%
webapp/publisher/cve/cve_views.py get_cves 25 25 0 0%
webapp/publisher/cve/cve_views.py (no function) 12 0 0 100%
webapp/publisher/github/views.py get_repos 9 9 0 0%
webapp/publisher/github/views.py (no function) 8 0 0 100%
webapp/publisher/snaps/build_views.py get_builds 14 14 0 0%
webapp/publisher/snaps/build_views.py get_snap_repo 24 24 0 0%
webapp/publisher/snaps/build_views.py get_snap_builds_page 2 2 0 0%
webapp/publisher/snaps/build_views.py get_snap_build_page 2 2 0 0%
webapp/publisher/snaps/build_views.py get_snap_builds 11 11 0 0%
webapp/publisher/snaps/build_views.py get_snap_build 9 9 0 0%
webapp/publisher/snaps/build_views.py validate_repo 15 15 0 0%
webapp/publisher/snaps/build_views.py get_validate_repo 3 3 0 0%
webapp/publisher/snaps/build_views.py post_snap_builds 41 41 0 0%
webapp/publisher/snaps/build_views.py post_build 10 10 0 0%
webapp/publisher/snaps/build_views.py check_build_request 13 13 0 0%
webapp/publisher/snaps/build_views.py post_disconnect_repo 13 13 0 0%
webapp/publisher/snaps/build_views.py post_github_webhook 29 29 0 0%
webapp/publisher/snaps/build_views.py get_update_gh_webhooks 26 26 0 0%
webapp/publisher/snaps/build_views.py (no function) 41 0 0 100%
webapp/publisher/snaps/builds.py build_link 3 3 0 0%
webapp/publisher/snaps/builds.py _map_upload_state 10 1 0 90%
webapp/publisher/snaps/builds.py map_build_and_upload_states 14 2 0 86%
webapp/publisher/snaps/builds.py map_snap_build_status 13 13 0 0%
webapp/publisher/snaps/builds.py (no function) 34 0 0 100%
webapp/publisher/snaps/collaboration_views.py get_collaboration_snap 3 3 0 0%
webapp/publisher/snaps/collaboration_views.py (no function) 8 0 0 100%
webapp/publisher/snaps/listing_views.py get_market_snap 1 1 0 0%
webapp/publisher/snaps/listing_views.py redirect_post_market_snap 1 1 0 0%
webapp/publisher/snaps/listing_views.py get_listing_data 46 5 0 89%
webapp/publisher/snaps/listing_views.py get_listing_data.format_links 5 2 0 60%
webapp/publisher/snaps/listing_views.py get_listing_snap 5 5 0 0%
webapp/publisher/snaps/listing_views.py post_listing_data 43 26 0 40%
webapp/publisher/snaps/listing_views.py post_preview 26 2 0 92%
webapp/publisher/snaps/listing_views.py (no function) 24 0 0 100%
webapp/publisher/snaps/logic.py get_snaps_account_info 24 1 0 96%
webapp/publisher/snaps/logic.py get_stores 5 5 0 0%
webapp/publisher/snaps/logic.py get_snap_names_by_ownership 8 0 0 100%
webapp/publisher/snaps/logic.py verify_base_metrics 3 1 0 67%
webapp/publisher/snaps/logic.py extract_metrics_period 8 2 0 75%
webapp/publisher/snaps/logic.py get_installed_based_metric 8 0 0 100%
webapp/publisher/snaps/logic.py is_snap_on_stable 5 0 0 100%
webapp/publisher/snaps/logic.py build_image_info 4 4 0 0%
webapp/publisher/snaps/logic.py remove_invalid_characters 1 0 0 100%
webapp/publisher/snaps/logic.py build_changed_images 25 25 0 0%
webapp/publisher/snaps/logic.py filter_changes_data 2 0 0 100%
webapp/publisher/snaps/logic.py invalid_field_errors 11 11 0 0%
webapp/publisher/snaps/logic.py replace_reserved_categories_key 4 0 0 100%
webapp/publisher/snaps/logic.py filter_categories 3 0 0 100%
webapp/publisher/snaps/logic.py filter_available_stores 6 0 0 100%
webapp/publisher/snaps/logic.py convert_date 3 0 0 100%
webapp/publisher/snaps/logic.py categorise_media 11 0 0 100%
webapp/publisher/snaps/logic.py get_store_name 5 0 0 100%
webapp/publisher/snaps/logic.py (no function) 22 0 0 100%
webapp/publisher/snaps/metrics_views.py get_account_snaps_metrics 14 0 0 100%
webapp/publisher/snaps/metrics_views.py get_measure_snap 1 1 0 0%
webapp/publisher/snaps/metrics_views.py publisher_snap_metrics 3 3 0 0%
webapp/publisher/snaps/metrics_views.py get_active_devices 45 7 0 84%
webapp/publisher/snaps/metrics_views.py get_latest_active_devices 13 13 0 0%
webapp/publisher/snaps/metrics_views.py get_metric_annotaion 13 0 0 100%
webapp/publisher/snaps/metrics_views.py get_country_metric 10 0 0 100%
webapp/publisher/snaps/metrics_views.py (no function) 29 0 0 100%
webapp/publisher/snaps/preview_data.py get_countries 1 0 0 100%
webapp/publisher/snaps/preview_data.py get_normalised_oses 1 0 0 100%
webapp/publisher/snaps/preview_data.py (no function) 2 0 0 100%
webapp/publisher/snaps/publicise_views.py get_publicise_data 9 9 0 0%
webapp/publisher/snaps/publicise_views.py get_publicise 2 2 0 0%
webapp/publisher/snaps/publicise_views.py (no function) 12 0 0 100%
webapp/publisher/snaps/release_views.py redirect_get_release_history 1 1 0 0%
webapp/publisher/snaps/release_views.py get_release_history_data 5 5 0 0%
webapp/publisher/snaps/release_views.py get_releases 2 2 0 0%
webapp/publisher/snaps/release_views.py redirect_post_release 1 1 0 0%
webapp/publisher/snaps/release_views.py get_release_history_json 8 1 0 88%
webapp/publisher/snaps/release_views.py post_release 12 2 0 83%
webapp/publisher/snaps/release_views.py redirect_post_close_channel 1 1 0 0%
webapp/publisher/snaps/release_views.py post_close_channel 18 0 0 100%
webapp/publisher/snaps/release_views.py post_default_track 17 0 0 100%
webapp/publisher/snaps/release_views.py get_snap_revision_json 2 2 0 0%
webapp/publisher/snaps/release_views.py (no function) 26 0 0 100%
webapp/publisher/snaps/settings_views.py get_settings_json 1 1 0 0%
webapp/publisher/snaps/settings_views.py get_settings_data 16 16 0 0%
webapp/publisher/snaps/settings_views.py get_settings 18 18 0 0%
webapp/publisher/snaps/settings_views.py post_settings_data 39 39 0 0%
webapp/publisher/snaps/settings_views.py (no function) 17 0 0 100%
webapp/publisher/snaps/views.py redirect_get_account_snaps 1 1 0 0%
webapp/publisher/snaps/views.py get_account_snaps 5 0 0 100%
webapp/publisher/snaps/views.py get_user_snaps 4 4 0 0%
webapp/publisher/snaps/views.py get_snap_build_status 11 11 0 0%
webapp/publisher/snaps/views.py redirect_get_register_name 1 1 0 0%
webapp/publisher/snaps/views.py get_register_name 1 0 0 100%
webapp/publisher/snaps/views.py redirect_post_register_name 1 1 0 0%
webapp/publisher/snaps/views.py post_register_name 24 10 0 58%
webapp/publisher/snaps/views.py get_package_metadata 5 5 0 0%
webapp/publisher/snaps/views.py delete_package 4 4 0 0%
webapp/publisher/snaps/views.py get_is_user_snap 10 2 0 80%
webapp/publisher/snaps/views.py post_register_name_json 12 0 0 100%
webapp/publisher/snaps/views.py get_register_name_dispute 4 4 0 0%
webapp/publisher/snaps/views.py post_register_name_dispute 9 9 0 0%
webapp/publisher/snaps/views.py get_request_reserved_name 7 1 0 86%
webapp/publisher/snaps/views.py snap_count 4 0 0 100%
webapp/publisher/snaps/views.py (no function) 114 0 0 100%
webapp/publisher/views.py get_account 1 0 0 100%
webapp/publisher/views.py get_publisher_details 5 0 0 100%
webapp/publisher/views.py post_publisher_details 7 0 0 100%
webapp/publisher/views.py get_agreement 1 0 0 100%
webapp/publisher/views.py post_agreement 5 0 0 100%
webapp/publisher/views.py get_account_name 1 0 0 100%
webapp/publisher/views.py post_account_name 11 0 0 100%
webapp/publisher/views.py (no function) 30 0 0 100%
webapp/snapcraft/logic.py get_livestreams 18 3 0 83%
webapp/snapcraft/logic.py (no function) 3 0 0 100%
webapp/snapcraft/views.py snapcraft_blueprint 32 0 0 100%
webapp/snapcraft/views.py snapcraft_blueprint.homepage 3 0 0 100%
webapp/snapcraft/views.py snapcraft_blueprint.get_account_json 15 15 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.iot 10 10 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.about 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.about_publish 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.about_listing 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.about_release 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.about_publicise 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.about_contact 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.about_thankyou 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.community_redirect 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.create_redirect 1 1 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.build 2 2 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.sitemap 4 4 0 0%
webapp/snapcraft/views.py snapcraft_blueprint.sitemap_links 7 7 0 0%
webapp/snapcraft/views.py (no function) 7 0 0 100%
webapp/store/__init__.py (no function) 0 0 0 100%
webapp/store/logic.py get_n_random_snaps 3 3 0 0%
webapp/store/logic.py get_snap_banner_url 5 0 0 100%
webapp/store/logic.py get_pages_details 12 12 0 0%
webapp/store/logic.py convert_navigation_url 15 15 0 0%
webapp/store/logic.py build_pagination_link 8 8 0 0%
webapp/store/logic.py convert_channel_maps 11 0 0 100%
webapp/store/logic.py convert_date 6 0 0 100%
webapp/store/logic.py format_category_name 1 0 0 100%
webapp/store/logic.py get_categories 9 0 0 100%
webapp/store/logic.py get_snap_categories 5 0 0 100%
webapp/store/logic.py get_latest_versions 14 0 0 100%
webapp/store/logic.py get_last_updated_versions 4 0 0 100%
webapp/store/logic.py get_last_updated_version 9 2 0 78%
webapp/store/logic.py has_stable 7 1 0 86%
webapp/store/logic.py get_lowest_available_risk 13 0 0 100%
webapp/store/logic.py extract_info_channel_map 10 0 0 100%
webapp/store/logic.py get_video_embed_code 8 0 0 100%
webapp/store/logic.py filter_screenshots 2 0 0 100%
webapp/store/logic.py get_video 6 3 0 50%
webapp/store/logic.py promote_snap_with_icon 8 8 0 0%
webapp/store/logic.py get_snap_developer 5 1 0 80%
webapp/store/logic.py (no function) 30 0 0 100%
webapp/store/snap_details_views.py snap_details_views 24 0 0 100%
webapp/store/snap_details_views.py snap_details_views._get_snap_link_fields 3 3 0 0%
webapp/store/snap_details_views.py snap_details_views._get_context_snap_details 31 3 0 90%
webapp/store/snap_details_views.py snap_details_views.dns_verified_status 18 18 0 0%
webapp/store/snap_details_views.py snap_details_views.snap_details 17 4 0 76%
webapp/store/snap_details_views.py snap_details_views.snap_details_embedded 9 0 0 100%
webapp/store/snap_details_views.py snap_details_views.snap_details_case_sensitive 1 1 0 0%
webapp/store/snap_details_views.py snap_details_views.get_badge_svg 4 0 0 100%
webapp/store/snap_details_views.py snap_details_views.snap_details_badge 4 0 0 100%
webapp/store/snap_details_views.py snap_details_views.snap_install_badge 11 11 0 0%
webapp/store/snap_details_views.py snap_details_views.snap_details_badge_trending 9 0 0 100%
webapp/store/snap_details_views.py snap_details_views.snap_distro_install 18 5 0 72%
webapp/store/snap_details_views.py snap_details_views.report_snap 5 5 0 0%
webapp/store/snap_details_views.py (no function) 19 0 0 100%
webapp/store/views.py store_blueprint 39 2 0 95%
webapp/store/views.py store_blueprint.format_validation_set 1 1 0 0%
webapp/store/views.py store_blueprint.get_validation_sets 15 15 0 0%
webapp/store/views.py store_blueprint.get_validation_set 15 15 0 0%
webapp/store/views.py store_blueprint.validation_sets 1 1 0 0%
webapp/store/views.py store_blueprint.discover 1 1 0 0%
webapp/store/views.py store_blueprint.brand_store_view 10 10 0 0%
webapp/store/views.py store_blueprint.brand_search_snap 20 20 0 0%
webapp/store/views.py store_blueprint.store_view 1 1 0 0%
webapp/store/views.py store_blueprint.get_video_thumbnail_data 6 6 0 0%
webapp/store/views.py store_blueprint.publisher_details 41 2 0 95%
webapp/store/views.py store_blueprint.store_category 12 12 0 0%
webapp/store/views.py store_blueprint.featured_snaps_in_category 5 5 0 0%
webapp/store/views.py store_blueprint.sitemap 24 24 0 0%
webapp/store/views.py store_blueprint.post_create_track 13 13 0 0%
webapp/store/views.py (no function) 24 0 0 100%
webapp/template_utils.py generate_slug 15 2 0 87%
webapp/template_utils.py contains 1 0 0 100%
webapp/template_utils.py join 1 0 0 100%
webapp/template_utils.py static_url 9 0 0 100%
webapp/template_utils.py install_snippet 6 0 0 100%
webapp/template_utils.py format_number 1 0 0 100%
webapp/template_utils.py format_display_name 1 0 0 100%
webapp/template_utils.py display_name 4 0 0 100%
webapp/template_utils.py format_date 2 0 0 100%
webapp/template_utils.py format_member_role 2 0 0 100%
webapp/template_utils.py format_link 10 0 0 100%
webapp/template_utils.py (no function) 15 0 0 100%
webapp/tutorials/__init__.py (no function) 0 0 0 100%
webapp/tutorials/views.py init_tutorials 5 0 0 100%
webapp/tutorials/views.py init_tutorials.index 13 13 0 0%
webapp/tutorials/views.py (no function) 7 0 0 100%
Total   7182 1365 0 81%

No items found using the specified filter.