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