Coverage report: 82%

Files Functions Classes

coverage.py v7.10.2, created at 2025-08-05 22:06 +0000

File class statements missing excluded coverage
tests/__init__.py (no class) 2 0 0 100%
tests/admin/__init__.py (no class) 0 0 0 100%
tests/admin/admin_endpoint_testing.py TestAdminEndpoints 10 0 0 100%
tests/admin/admin_endpoint_testing.py (no class) 6 0 0 100%
tests/admin/tests_update_featured_snaps.py TestUpdateFeaturedSnaps 58 0 0 100%
tests/admin/tests_update_featured_snaps.py (no class) 9 0 0 100%
tests/api/__init__.py (no class) 0 0 0 100%
tests/api/test_github.py GitHubTest 38 0 0 100%
tests/api/test_github.py (no class) 14 0 0 100%
tests/api/test_marketo_api.py Marketo 49 0 0 100%
tests/api/test_marketo_api.py (no class) 18 0 0 100%
tests/docs/__init__.py (no class) 0 0 0 100%
tests/endpoints/__init__.py (no class) 0 0 0 100%
tests/endpoints/endpoint_testing.py TestEndpoints 10 0 0 100%
tests/endpoints/endpoint_testing.py TestModelServiceEndpoints 3 0 0 100%
tests/endpoints/endpoint_testing.py (no class) 9 0 0 100%
tests/endpoints/test_brand_store.py TestGetBrandStoreEndpoint 12 0 0 100%
tests/endpoints/test_brand_store.py (no class) 10 0 0 100%
tests/endpoints/tests_dns_verified_status.py TestDnsVerifiedStatus 6 0 0 100%
tests/endpoints/tests_dns_verified_status.py (no class) 8 0 0 100%
tests/endpoints/tests_get_store.py TestGetStore 10 0 0 100%
tests/endpoints/tests_get_store.py (no class) 7 0 0 100%
tests/endpoints/tests_get_stores.py TestGetStores 6 0 0 100%
tests/endpoints/tests_get_stores.py (no class) 5 0 0 100%
tests/endpoints/tests_invites.py TestInvites 6 0 0 100%
tests/endpoints/tests_invites.py (no class) 5 0 0 100%
tests/endpoints/tests_members.py TestGetManageMembers 10 0 0 100%
tests/endpoints/tests_members.py TestPostManageMembers 10 0 0 100%
tests/endpoints/tests_members.py (no class) 9 0 0 100%
tests/endpoints/tests_models.py TestCreateModel 24 0 0 100%
tests/endpoints/tests_models.py TestGetModels 24 0 0 100%
tests/endpoints/tests_models.py TestUpdateModel 19 0 0 100%
tests/endpoints/tests_models.py (no class) 27 0 0 100%
tests/endpoints/tests_policies.py TestGetPolicies 12 0 0 100%
tests/endpoints/tests_policies.py TestDeletePolicies 17 0 0 100%
tests/endpoints/tests_policies.py TestCreatePolicies 29 0 0 100%
tests/endpoints/tests_policies.py (no class) 28 0 0 100%
tests/endpoints/tests_settings.py TestPostSettings 26 0 0 100%
tests/endpoints/tests_settings.py (no class) 9 0 0 100%
tests/endpoints/tests_signing_keys.py TestGetSigningKeys 12 0 0 100%
tests/endpoints/tests_signing_keys.py TestCreateSigningKeys 19 0 0 100%
tests/endpoints/tests_signing_keys.py TestDeleteSigningKeys 19 0 0 100%
tests/endpoints/tests_signing_keys.py (no class) 28 0 0 100%
tests/endpoints/tests_snaps.py TestGetStoreSnaps 27 0 0 100%
tests/endpoints/tests_snaps.py TestPostManageStoreSnaps 18 0 0 100%
tests/endpoints/tests_snaps.py (no class) 14 0 0 100%
tests/endpoints/tests_snaps_search.py TestSnapsSearch 12 0 0 100%
tests/endpoints/tests_snaps_search.py (no class) 7 0 0 100%
tests/endpoints/tests_validation_sets.py GetValidationSetsTest 10 10 0 0%
tests/endpoints/tests_validation_sets.py (no class) 6 0 0 100%
tests/first_snap/__init__.py (no class) 0 0 0 100%
tests/first_snap/tests_views.py FirstSnap 79 0 0 100%
tests/first_snap/tests_views.py (no class) 27 0 0 100%
tests/login/__init__.py (no class) 0 0 0 100%
tests/login/tests_login_handler.py LoginHandlerTest 39 0 0 100%
tests/login/tests_login_handler.py AfterLoginHandlerTest 32 0 0 100%
tests/login/tests_login_handler.py (no class) 40 0 0 100%
tests/metrics/__init__.py (no class) 0 0 0 100%
tests/metrics/tests_metrics.py OsMetricTest 4 0 0 100%
tests/metrics/tests_metrics.py (no class) 4 0 0 100%
tests/publisher/__init__.py (no class) 0 0 0 100%
tests/publisher/cve/__init__.py (no class) 0 0 0 100%
tests/publisher/cve/test_cve_filter_data.py CveFilterDataTest 25 0 0 100%
tests/publisher/cve/test_cve_filter_data.py (no class) 12 0 0 100%
tests/publisher/cve/test_cve_get_by_revision.py CveHGetByRevisionTest 48 0 0 100%
tests/publisher/cve/test_cve_get_by_revision.py (no class) 13 0 0 100%
tests/publisher/cve/test_cve_paginate_data.py CvePaginateDataTest 8 0 0 100%
tests/publisher/cve/test_cve_paginate_data.py (no class) 5 0 0 100%
tests/publisher/cve/test_cve_sort_data.py CveSortDataTest 11 0 0 100%
tests/publisher/cve/test_cve_sort_data.py (no class) 9 0 0 100%
tests/publisher/cve/test_cve_user_access.py CveUserAccessTest 34 0 0 100%
tests/publisher/cve/test_cve_user_access.py (no class) 16 0 0 100%
tests/publisher/cve/test_has_cve.py HasRevisionsWithCvesTest 12 0 0 100%
tests/publisher/cve/test_has_cve.py (no class) 13 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestEndpoints 10 0 0 100%
tests/publisher/cve/test_has_cve_api.py TestModelServiceEndpoints 15 0 0 100%
tests/publisher/cve/test_has_cve_api.py (no class) 15 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases 0 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.BaseAppTesting 23 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedOut 7 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedIn 49 0 0 100%
tests/publisher/endpoint_testing.py BaseTestCases.EndpointLoggedInErrorHandling 38 12 0 68%
tests/publisher/endpoint_testing.py (no class) 39 0 0 100%
tests/publisher/snaps/__init__.py (no class) 0 0 0 100%
tests/publisher/snaps/test_builds.py TestBuildStateMapper 4 0 0 100%
tests/publisher/snaps/test_builds.py (no class) 4 0 0 100%
tests/publisher/snaps/test_logic.py LogicTest 4 0 0 100%
tests/publisher/snaps/test_logic.py (no class) 4 0 0 100%
tests/publisher/snaps/test_post_preview.py PostPreviewPageNotAuth 3 0 0 100%
tests/publisher/snaps/test_post_preview.py PostPreviewPage 16 0 0 100%
tests/publisher/snaps/test_post_preview.py (no class) 9 0 0 100%
tests/publisher/snaps/test_release_history_json.py GetReleaseHistoryJsonNotAuth 3 0 0 100%
tests/publisher/snaps/test_release_history_json.py GetReleasesHistoryJson 20 0 0 100%
tests/publisher/snaps/test_release_history_json.py (no class) 12 0 0 100%
tests/publisher/snaps/tests_get_metrics.py MetricsPageNotAuth 3 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceAnnotationGetInfo 5 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetActiveDeviceMetrics 62 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetMetricAnnotation 12 0 0 100%
tests/publisher/snaps/tests_get_metrics.py GetCountryMetric 22 0 0 100%
tests/publisher/snaps/tests_get_metrics.py (no class) 56 0 0 100%
tests/publisher/snaps/tests_listing.py ListingPageNotAuth 3 0 0 100%
tests/publisher/snaps/tests_listing.py GetListingPage 49 0 0 100%
tests/publisher/snaps/tests_listing.py (no class) 20 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostCloseChannelPageNotAuth 3 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelGetSnapIdPage 18 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py PostDataCloseChannelPage 37 0 0 100%
tests/publisher/snaps/tests_post_close_channel.py (no class) 21 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrackNotAuth 3 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrackGetSnapId 18 0 0 100%
tests/publisher/snaps/tests_post_default_track.py PostDefaultTrack 37 0 0 100%
tests/publisher/snaps/tests_post_default_track.py (no class) 21 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostListingPageNotAuth 3 0 0 100%
tests/publisher/snaps/tests_post_listing.py PostMetadataListingPage 30 0 0 100%
tests/publisher/snaps/tests_post_listing.py (no class) 15 0 0 100%
tests/publisher/snaps/tests_post_release.py PostReleasePageNotAuth 3 0 0 100%
tests/publisher/snaps/tests_post_release.py PostDataReleasePage 28 0 0 100%
tests/publisher/snaps/tests_post_release.py (no class) 14 0 0 100%
tests/publisher/tests_account_logout.py LogoutRedirects 5 0 0 100%
tests/publisher/tests_account_logout.py (no class) 7 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsNotAuth 2 0 0 100%
tests/publisher/tests_account_snaps.py AccountSnapsPage 95 0 0 100%
tests/publisher/tests_account_snaps.py (no class) 24 0 0 100%
tests/publisher/tests_account_snaps_metrics.py AccountSnapsMetricsNotAuth 2 0 0 100%
tests/publisher/tests_account_snaps_metrics.py AccountSnapsMetrics 29 0 0 100%
tests/publisher/tests_account_snaps_metrics.py (no class) 14 0 0 100%
tests/publisher/tests_agreement.py GetAgreementPage 6 0 0 100%
tests/publisher/tests_agreement.py PostAgreementPage 17 0 0 100%
tests/publisher/tests_agreement.py (no class) 12 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsNotAuth 2 0 0 100%
tests/publisher/tests_api_snaps.py AccountSnapsPage 47 0 0 100%
tests/publisher/tests_api_snaps.py (no class) 16 0 0 100%
tests/publisher/tests_get_package_metadata.py TestGetPackageMetadata 26 26 0 0%
tests/publisher/tests_get_package_metadata.py (no class) 19 0 0 100%
tests/publisher/tests_post_account_details.py PostAccountDetailsPageNotAuth 2 0 0 100%
tests/publisher/tests_post_account_details.py PostAccountDetailsPage 12 0 0 100%
tests/publisher/tests_post_account_details.py (no class) 13 0 0 100%
tests/publisher/tests_publisher.py TestCache 10 0 0 100%
tests/publisher/tests_publisher.py PublisherPage 59 0 0 100%
tests/publisher/tests_publisher.py (no class) 28 0 0 100%
tests/publisher/tests_publisher_logic.py PublisherLogicTest 32 0 0 100%
tests/publisher/tests_publisher_logic.py (no class) 11 0 0 100%
tests/publisher/tests_register_name.py GetRegisterNamePageNotAuth 2 0 0 100%
tests/publisher/tests_register_name.py GetRegisterNamePage 8 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePageNotAuth 2 0 0 100%
tests/publisher/tests_register_name.py PostRegisterNamePage 52 0 0 100%
tests/publisher/tests_register_name.py (no class) 24 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJsonNotAuth 2 0 0 100%
tests/publisher/tests_register_name_json.py PostRegisterNameJson 29 0 0 100%
tests/publisher/tests_register_name_json.py (no class) 14 0 0 100%
tests/publisher/tests_reserved_name_dispute.py GetRequestReservedNameNotAuth 2 0 0 100%
tests/publisher/tests_reserved_name_dispute.py GetRequestReservedName 14 0 0 100%
tests/publisher/tests_reserved_name_dispute.py (no class) 10 0 0 100%
tests/publisher/tests_username.py GetUsernamePageNotAuth 2 0 0 100%
tests/publisher/tests_username.py GetUsernamePage 6 0 0 100%
tests/publisher/tests_username.py PostUsernamePageNotAuth 2 0 0 100%
tests/publisher/tests_username.py PostUsernamePage 20 0 0 100%
tests/publisher/tests_username.py (no class) 18 0 0 100%
tests/snapcraft/__init__.py (no class) 0 0 0 100%
tests/snapcraft/tests_public.py StorePage 6 0 0 100%
tests/snapcraft/tests_public.py (no class) 8 0 0 100%
tests/store/__init__.py (no class) 0 0 0 100%
tests/store/tests_details.py GetDetailsPageTest 59 0 0 100%
tests/store/tests_details.py (no class) 21 0 0 100%
tests/store/tests_distro_page.py GetDistroPageTest 30 0 0 100%
tests/store/tests_distro_page.py (no class) 15 0 0 100%
tests/store/tests_embedded_card.py GetEmbeddedCardTest 48 0 0 100%
tests/store/tests_embedded_card.py (no class) 22 0 0 100%
tests/store/tests_github_badge.py GetGitHubBadgeTest 66 0 0 100%
tests/store/tests_github_badge.py (no class) 24 0 0 100%
tests/store/tests_public_logic.py StoreLogicTest 102 0 0 100%
tests/store/tests_public_logic.py (no class) 24 0 0 100%
tests/store/tests_publisher.py GetPublisherPageTest 26 0 0 100%
tests/store/tests_publisher.py (no class) 14 0 0 100%
tests/tests_badge_counter.py TestsBadgePrometheusCounter 19 0 0 100%
tests/tests_badge_counter.py (no class) 10 0 0 100%
tests/tests_helpers.py GetDnsVerificationTokenTest 4 0 0 100%
tests/tests_helpers.py DirectoryExistsTest 6 0 0 100%
tests/tests_helpers.py (no class) 12 0 0 100%
tests/tests_markdown_parser.py TestMarkdownParser 76 0 0 100%
tests/tests_markdown_parser.py (no class) 22 0 0 100%
tests/tests_requests.py RequestsCacheTest 10 0 0 100%
tests/tests_requests.py (no class) 10 0 0 100%
tests/tests_templates_utils.py TemplateUtilsTest 145 0 0 100%
tests/tests_templates_utils.py (no class) 16 0 0 100%
webapp/__init__.py (no class) 0 0 0 100%
webapp/admin/views.py (no class) 82 25 0 70%
webapp/api/__init__.py (no class) 1 0 0 100%
webapp/api/exceptions.py ApiError 0 0 0 100%
webapp/api/exceptions.py ApiConnectionError 0 0 0 100%
webapp/api/exceptions.py ApiTimeoutError 0 0 0 100%
webapp/api/exceptions.py ApiResponseDecodeError 0 0 0 100%
webapp/api/exceptions.py ApiResponseError 2 0 0 100%
webapp/api/exceptions.py ApiResponseErrorList 2 2 0 0%
webapp/api/exceptions.py (no class) 12 0 0 100%
webapp/api/github.py InvalidYAML 0 0 0 100%
webapp/api/github.py GitHub 161 73 0 55%
webapp/api/github.py (no class) 42 0 0 100%
webapp/api/marketo.py Marketo 38 10 0 74%
webapp/api/marketo.py (no class) 15 0 0 100%
webapp/api/requests.py GeventGreenletTimeout 0 0 0 100%
webapp/api/requests.py BaseSession 10 0 0 100%
webapp/api/requests.py Session 0 0 0 100%
webapp/api/requests.py PublisherSession 1 0 0 100%
webapp/api/requests.py (no class) 13 0 0 100%
webapp/api/sso.py (no class) 24 3 0 88%
webapp/app.py (no class) 69 5 0 93%
webapp/authentication.py (no class) 31 1 0 97%
webapp/blog/__init__.py (no class) 0 0 0 100%
webapp/blog/views.py (no class) 75 56 0 25%
webapp/config.py ConfigurationError 0 0 0 100%
webapp/config.py (no class) 22 2 0 91%
webapp/decorators.py (no class) 23 3 0 87%
webapp/docs/__init__.py (no class) 0 0 0 100%
webapp/docs/views.py (no class) 11 0 0 100%
webapp/endpoints/invites.py (no class) 13 0 0 100%
webapp/endpoints/members.py (no class) 41 13 0 68%
webapp/endpoints/models.py (no class) 137 8 0 94%
webapp/endpoints/settings.py (no class) 19 0 0 100%
webapp/endpoints/signing_keys.py (no class) 78 2 0 97%
webapp/endpoints/snap_search.py (no class) 13 0 0 100%
webapp/endpoints/snaps.py (no class) 67 24 0 64%
webapp/endpoints/validation_sets.py (no class) 45 31 0 31%
webapp/endpoints/views.py (no class) 46 2 0 96%
webapp/extensions.py (no class) 2 0 0 100%
webapp/first_snap/logic.py (no class) 5 0 0 100%
webapp/first_snap/views.py (no class) 116 12 0 90%
webapp/handlers.py (no class) 153 13 0 92%
webapp/helpers.py (no class) 101 10 0 90%
webapp/login/macaroon.py MacaroonRequest 2 0 0 100%
webapp/login/macaroon.py MacaroonResponse 9 9 0 0%
webapp/login/macaroon.py (no class) 12 0 0 100%
webapp/login/oauth_views.py (no class) 31 18 0 42%
webapp/login/views.py (no class) 64 4 0 94%
webapp/markdown.py SnapcraftBlockParser 4 0 0 100%
webapp/markdown.py SnapcraftInlineParser 0 0 0 100%
webapp/markdown.py (no class) 19 0 0 100%
webapp/metrics/helper.py (no class) 98 49 0 50%
webapp/metrics/metrics.py Metric 8 0 0 100%
webapp/metrics/metrics.py ActiveDevices 11 1 0 91%
webapp/metrics/metrics.py CountryDevices 50 3 2 94%
webapp/metrics/metrics.py OsMetric 9 0 0 100%
webapp/metrics/metrics.py (no class) 36 2 0 94%
webapp/packages/logic.py (no class) 131 111 0 15%
webapp/packages/store_packages.py (no class) 27 11 0 59%
webapp/publisher/__init__.py (no class) 0 0 0 100%
webapp/publisher/cve/cve_helper.py CveHelper 91 4 0 96%
webapp/publisher/cve/cve_helper.py (no class) 31 0 0 100%
webapp/publisher/cve/cve_views.py (no class) 56 30 0 46%
webapp/publisher/github/views.py (no class) 17 9 0 47%
webapp/publisher/snaps/build_views.py (no class) 253 212 0 16%
webapp/publisher/snaps/builds.py StoreFrontBuildState 0 0 0 100%
webapp/publisher/snaps/builds.py LaunchpadBuildState 0 0 0 100%
webapp/publisher/snaps/builds.py LaunchpadStoreUploadState 0 0 0 100%
webapp/publisher/snaps/builds.py (no class) 74 19 0 74%
webapp/publisher/snaps/collaboration_views.py (no class) 11 3 0 73%
webapp/publisher/snaps/listing_views.py (no class) 151 42 0 72%
webapp/publisher/snaps/logic.py (no class) 158 49 0 69%
webapp/publisher/snaps/metrics_views.py (no class) 128 24 0 81%
webapp/publisher/snaps/preview_data.py (no class) 4 0 0 100%
webapp/publisher/snaps/publicise_views.py (no class) 23 11 0 52%
webapp/publisher/snaps/release_views.py (no class) 92 14 0 85%
webapp/publisher/snaps/settings_views.py (no class) 91 74 0 19%
webapp/publisher/snaps/views.py (no class) 228 63 0 72%
webapp/publisher/views.py (no class) 61 0 0 100%
webapp/snapcraft/logic.py (no class) 21 3 0 86%
webapp/snapcraft/views.py (no class) 89 47 0 47%
webapp/store/__init__.py (no class) 0 0 0 100%
webapp/store/logic.py (no class) 191 53 1 72%
webapp/store/snap_details_views.py (no class) 147 29 0 80%
webapp/store/views.py (no class) 190 97 0 49%
webapp/template_utils.py (no class) 67 2 0 97%
webapp/tutorials/__init__.py (no class) 0 0 0 100%
webapp/tutorials/views.py (no class) 25 13 0 48%
Total   7578 1349 3 82%

No items found using the specified filter.