Coverage report: 81%

Files Functions Classes

coverage.py v7.8.0, created at 2025-04-28 22:05 +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/test_brand_store.py TestGetBrandStoreEndpoint 12 0 0 100%
tests/admin/test_brand_store.py (no class) 8 0 0 100%
tests/admin/tests_models.py TestModelServiceEndpoints 2 0 0 100%
tests/admin/tests_models.py TestGetModels 24 0 0 100%
tests/admin/tests_models.py TestCreateModel 24 0 0 100%
tests/admin/tests_models.py TestUpdateModel 19 0 0 100%
tests/admin/tests_models.py (no class) 29 0 0 100%
tests/admin/tests_policies.py TestGetPolicies 12 0 0 100%
tests/admin/tests_policies.py TestCreatePolicies 29 0 0 100%
tests/admin/tests_policies.py TestDeletePolicies 17 0 0 100%
tests/admin/tests_policies.py (no class) 26 0 0 100%
tests/admin/tests_signing_keys.py TestGetSigningKeys 12 0 0 100%
tests/admin/tests_signing_keys.py TestCreateSigningKeys 19 0 0 100%
tests/admin/tests_signing_keys.py TestDeleteSigningKeys 19 0 0 100%
tests/admin/tests_signing_keys.py (no class) 23 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/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 45 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 11 11 0 0%
tests/publisher/tests_get_package_metadata.py (no class) 9 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/store/tests_validation_sets.py GetValidationSetsTest 10 10 0 0%
tests/store/tests_validation_sets.py (no class) 6 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 (no class) 6 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) 391 97 0 75%
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) 51 5 0 90%
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/extensions.py (no class) 2 0 0 100%
webapp/first_snap/views.py (no class) 114 10 0 91%
webapp/handlers.py (no class) 153 13 0 92%
webapp/helpers.py (no class) 87 8 0 91%
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) 65 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 0 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) 93 15 0 84%
webapp/publisher/snaps/settings_views.py (no class) 91 74 0 19%
webapp/publisher/snaps/views.py (no class) 217 53 0 76%
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 0 72%
webapp/store/snap_details_views.py (no class) 173 50 0 71%
webapp/store/views.py (no class) 228 128 0 44%
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   7182 1365 0 81%

No items found using the specified filter.