Coverage report: 85%

Files Functions Classes

coverage.py v7.13.1, created at 2025-12-29 22:06 +0000

File class   statements missing excluded   coverage
cache / cache_utility.py (no class)   3 0 0   100%
tests / __init__.py (no class)   0 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   11 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 / publisher / __init__.py (no class)   0 0 0   100%
tests / endpoints / publisher / tests_builds.py TestGetSnapBuildPage   16 0 0   100%
tests / endpoints / publisher / tests_builds.py TestPostBuild   52 0 0   100%
tests / endpoints / publisher / tests_builds.py TestPostDisconnectRepo   7 0 0   100%
tests / endpoints / publisher / tests_builds.py (no class)   25 0 0   100%
tests / endpoints / publisher / tests_listing.py TestGetListingData   54 0 0   100%
tests / endpoints / publisher / tests_listing.py TestPostListingData   26 0 0   100%
tests / endpoints / publisher / tests_listing.py (no class)   32 0 0   100%
tests / endpoints / publisher / tests_packages.py TestGetPackageMetadata   15 0 0   100%
tests / endpoints / publisher / tests_packages.py (no class)   8 0 0   100%
tests / endpoints / publisher / tests_publicise.py TestGetPubliciseData   53 0 0   100%
tests / endpoints / publisher / tests_publicise.py (no class)   16 0 0   100%
tests / endpoints / publisher / tests_register.py GetRegisterNamePageNotAuth   2 0 0   100%
tests / endpoints / publisher / tests_register.py GetRegisterNamePage   8 0 0   100%
tests / endpoints / publisher / tests_register.py PostRegisterNamePageNotAuth   2 0 0   100%
tests / endpoints / publisher / tests_register.py PostRegisterNamePage   52 0 0   100%
tests / endpoints / publisher / tests_register.py PostRegisterNameDisputeNotAuth   2 0 0   100%
tests / endpoints / publisher / tests_register.py PostRegisterNameDispute   37 0 0   100%
tests / endpoints / publisher / tests_register.py (no class)   34 0 0   100%
tests / endpoints / publisher / tests_settings.py TestGetSettingsData   61 0 0   100%
tests / endpoints / publisher / tests_settings.py TestPostSettingsData   7 0 0   100%
tests / endpoints / publisher / tests_settings.py (no class)   19 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 / test_cve_get_by_revision.py CveHGetByRevisionTest   48 0 0   100%
tests / endpoints / test_cve_get_by_revision.py (no class)   13 0 0   100%
tests / endpoints / tests_builds.py TestGetSnapRepo   85 0 0   100%
tests / endpoints / tests_builds.py (no class)   25 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   18 0 0   100%
tests / endpoints / tests_invites.py (no class)   10 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_releases.py TestGetReleaseHistoryData   44 0 0   100%
tests / endpoints / tests_releases.py (no class)   12 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 / 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_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 / 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 TestGetBuilds   18 0 0   100%
tests / publisher / snaps / test_builds.py TestExtractGithubRepository   10 0 0   100%
tests / publisher / snaps / test_builds.py (no class)   14 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   70 0 0   100%
tests / publisher / snaps / tests_get_metrics.py GetMetricAnnotation   14 0 0   100%
tests / publisher / snaps / tests_get_metrics.py GetCountryMetric   24 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   9 0 0   100%
tests / publisher / tests_account_logout.py (no class)   8 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   38 0 0   100%
tests / publisher / tests_account_snaps_metrics.py (no class)   16 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_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   153 5 0   97%
tests / store / tests_details.py (no class)   46 2 0   96%
tests / store / tests_distro_page.py GetDistroPageTest   31 0 0   100%
tests / store / tests_distro_page.py (no class)   15 0 0   100%
tests / store / tests_embedded_card.py GetEmbeddedCardTest   49 0 0   100%
tests / store / tests_embedded_card.py (no class)   22 0 0   100%
tests / store / tests_explore.py ExploreViewTest   20 0 0   100%
tests / store / tests_explore.py (no class)   11 0 0   100%
tests / store / tests_github_badge.py GetGitHubBadgeTest   67 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)   19 0 0   100%
tests / tests_feeds.py TestFeeds   24 2 0   92%
tests / tests_feeds.py (no class)   10 1 0   90%
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)   49 3 0   94%
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   162 72 0   56%
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)   66 1 0   98%
webapp / authentication.py (no class)   29 1 0   97%
webapp / blog / __init__.py (no class)   0 0 0   100%
webapp / blog / views.py (no class)   86 66 0   23%
webapp / config.py ConfigurationError   0 0 0   100%
webapp / config.py (no class)   29 2 0   93%
webapp / decorators.py (no class)   32 3 0   91%
webapp / docs / __init__.py (no class)   0 0 0   100%
webapp / docs / views.py (no class)   11 0 0   100%
webapp / endpoints / builds.py (no class)   36 0 0   100%
webapp / endpoints / cves.py (no class)   56 44 0   21%
webapp / endpoints / invites.py (no class)   45 10 0   78%
webapp / endpoints / members.py (no class)   41 13 0   68%
webapp / endpoints / models.py (no class)   137 8 0   94%
webapp / endpoints / publisher / __init__.py (no class)   0 0 0   100%
webapp / endpoints / publisher / builds.py (no class)   63 33 0   48%
webapp / endpoints / publisher / listing.py (no class)   110 19 0   83%
webapp / endpoints / publisher / packages.py (no class)   23 8 0   65%
webapp / endpoints / publisher / publicise.py (no class)   19 0 0   100%
webapp / endpoints / publisher / register.py (no class)   45 10 0   78%
webapp / endpoints / publisher / settings.py (no class)   68 27 0   60%
webapp / endpoints / releases.py (no class)   12 0 0   100%
webapp / endpoints / settings.py (no class)   19 0 0   100%
webapp / endpoints / signing_keys.py (no class)   80 3 0   96%
webapp / endpoints / snap_search.py (no class)   13 0 0   100%
webapp / endpoints / snaps.py (no class)   66 23 0   65%
webapp / endpoints / utils.py (no class)   6 3 0   50%
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)   4 0 0   100%
webapp / feeds / __init__.py (no class)   0 0 0   100%
webapp / feeds / feeds.py (no class)   85 11 0   87%
webapp / handlers.py (no class)   145 13 0   91%
webapp / helpers.py (no class)   101 16 0   84%
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)   107 49 0   54%
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)   138 116 0   16%
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   95 4 0   96%
webapp / publisher / cve / cve_helper.py (no class)   31 0 0   100%
webapp / publisher / github / views.py (no class)   17 9 0   47%
webapp / publisher / snaps / build_views.py (no class)   204 153 0   25%
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)   50 9 0   82%
webapp / publisher / snaps / logic.py (no class)   158 49 0   69%
webapp / publisher / snaps / metrics_views.py (no class)   129 24 0   81%
webapp / publisher / snaps / preview_data.py (no class)   4 0 0   100%
webapp / publisher / snaps / publicise_views.py (no class)   9 2 0   78%
webapp / publisher / snaps / release_views.py (no class)   85 9 0   89%
webapp / publisher / snaps / settings_views.py (no class)   29 19 0   34%
webapp / publisher / snaps / views.py (no class)   183 31 0   83%
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)   84 46 0   45%
webapp / store / __init__.py (no class)   0 0 0   100%
webapp / store / logic.py (no class)   195 53 1   73%
webapp / store / snap_details_views.py (no class)   183 36 0   80%
webapp / store / views.py (no class)   241 114 0   53%
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     8466 1306 3   85%

No items found using the specified filter.