| backend / app / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| backend / app / config.py |
get_settings |
|
1 |
0 |
0 |
|
100% |
| backend / app / config.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| backend / app / constants.py |
(no function) |
|
1 |
0 |
0 |
|
100% |
| backend / app / dependencies / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| backend / app / dependencies / auth.py |
verify_api_key |
|
3 |
0 |
0 |
|
100% |
| backend / app / dependencies / auth.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| backend / app / dependencies / aws_storage.py |
get_aws_storage |
|
1 |
0 |
0 |
|
100% |
| backend / app / dependencies / aws_storage.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| backend / app / dependencies / gh_client.py |
get_github_client |
|
1 |
0 |
0 |
|
100% |
| backend / app / dependencies / gh_client.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| backend / app / dependencies / redis_client.py |
get_redis_client |
|
1 |
1 |
0 |
|
0% |
| backend / app / dependencies / redis_client.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| backend / app / main.py |
lifespan |
|
5 |
0 |
0 |
|
100% |
| backend / app / main.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| backend / app / routers / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| backend / app / routers / badge.py |
_badge_color |
|
6 |
0 |
0 |
|
100% |
| backend / app / routers / badge.py |
_get_coverage |
|
13 |
0 |
0 |
|
100% |
| backend / app / routers / badge.py |
redirect |
|
4 |
0 |
0 |
|
100% |
| backend / app / routers / badge.py |
get_response |
|
3 |
0 |
0 |
|
100% |
| backend / app / routers / badge.py |
badge |
|
17 |
0 |
0 |
|
100% |
| backend / app / routers / badge.py |
(no function) |
|
21 |
0 |
0 |
|
100% |
| backend / app / routers / coverage.py |
invalidate_cache |
|
7 |
0 |
0 |
|
100% |
| backend / app / routers / coverage.py |
get_file |
|
8 |
0 |
0 |
|
100% |
| backend / app / routers / coverage.py |
create_upload_session |
|
2 |
0 |
0 |
|
100% |
| backend / app / routers / coverage.py |
(no function) |
|
23 |
0 |
0 |
|
100% |
| backend / app / schemas.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| backend / app / utils / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| backend / app / utils / aws_storage.py |
AWSStorage.__init__ |
|
8 |
0 |
0 |
|
100% |
| backend / app / utils / aws_storage.py |
AWSStorage.__aenter__ |
|
5 |
0 |
0 |
|
100% |
| backend / app / utils / aws_storage.py |
AWSStorage.__aexit__ |
|
2 |
0 |
0 |
|
100% |
| backend / app / utils / aws_storage.py |
AWSStorage._generate_site_id |
|
13 |
0 |
0 |
|
100% |
| backend / app / utils / aws_storage.py |
AWSStorage.create_upload_session |
|
6 |
0 |
0 |
|
100% |
| backend / app / utils / aws_storage.py |
AWSStorage.get_file |
|
9 |
0 |
1 |
|
100% |
| backend / app / utils / aws_storage.py |
(no function) |
|
25 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient.__init__ |
|
3 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient.ensure_initialized |
|
2 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient._headers |
|
1 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient.__aenter__ |
|
5 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient.__aexit__ |
|
2 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient._get |
|
9 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient.get_latest_commits |
|
4 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
GithubClient.get_commit_statuses |
|
4 |
0 |
0 |
|
100% |
| backend / app / utils / github_client.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| backend / tests / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
_use_test_settings |
|
9 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
api_key |
|
1 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
mock_s3_client |
|
1 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
mock_sts_client |
|
1 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
_patch_aiobotocore |
|
7 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
_patch_aiobotocore._s3_ctx |
|
1 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
_patch_aiobotocore._sts_ctx |
|
1 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
_patch_aiobotocore.fake_create_client |
|
4 |
0 |
1 |
|
100% |
| backend / tests / conftest.py |
_reset_aws_mocks |
|
2 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
mock_redis |
|
1 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
client |
|
2 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
_override_redis |
|
3 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
set_stamina_testing |
|
1 |
0 |
0 |
|
100% |
| backend / tests / conftest.py |
(no function) |
|
31 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
get_commit |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_returns_green_svg_for_successful_coverage |
|
9 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_returns_red_svg_for_failed_coverage |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_returns_gray_badge_when_no_coverage_status |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_returns_gray_badge_when_no_commits |
|
4 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_serves_cached_badge_from_redis |
|
5 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_caches_generated_badge_in_redis |
|
11 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_no_store_headers_for_github_camo |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_public_cache_headers_for_regular_clients |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_redis_read_error_falls_through_to_github |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_redis_write_error_still_returns_badge |
|
8 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_skips_skip_ci_commits |
|
11 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_check_up_to_5_commits |
|
10 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_commit_without_coverage_status |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_stop_on_first_commit_without_skip_ci |
|
9 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_retry_on_github_api_failure |
|
9 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_server_error_on_github_api_commit_route_failure |
|
5 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_server_error_on_github_api_status_route_failure |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadge.test_dont_write_cache_on_github_api_failure |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_redirects_to_target_url |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_redirects_for_failed_coverage |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_returns_404_when_no_coverage_status |
|
5 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_returns_404_when_no_commits |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_returns_404_when_commit_has_only_non_coverage_status |
|
5 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_skips_skip_ci_commits |
|
11 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_check_up_to_5_commits |
|
10 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_stop_on_first_commit_without_skip_ci |
|
8 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_retry_on_github_api_failure |
|
8 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_server_error_on_github_api_commit_route_failure |
|
4 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
TestBadgeRedirect.test_server_error_on_github_api_status_route_failure |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_badge.py |
(no function) |
|
51 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
TestCreateSiteAuth.test_missing_token_returns_401 |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
TestCreateSiteAuth.test_invalid_token_returns_403 |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
TestCreateSiteAuth.test_valid_token_returns_200 |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
TestCreateSite.test_returns_session |
|
15 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
TestCreateSite.test_retries_on_site_id_collision |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
TestCreateSite.test_fails_after_max_attempts_on_site_id_collision |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
TestCreateSite.test_s3_error_propagates |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_create_site.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
_mock_s3_body |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_returns_html_content |
|
6 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_returns_css_content_type |
|
5 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_unknown_extension_returns_octet_stream |
|
5 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_missing_file_returns_404 |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_empty_path_serves_index_html |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_directory_path_serves_index_html |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_invalid_site_id_returns_422 |
|
5 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
TestGetFile.test_path_traversal_returns_422 |
|
7 |
0 |
0 |
|
100% |
| backend / tests / test_get_file.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| backend / tests / test_invalidate_cache.py |
TestInvalidateCacheAuth.test_missing_token_returns_401 |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_invalidate_cache.py |
TestInvalidateCacheAuth.test_invalid_token_returns_403 |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_invalidate_cache.py |
TestInvalidateCacheAuth.test_valid_token_returns_200 |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_invalidate_cache.py |
TestInvalidateCache.test_deletes_badge_cache_key |
|
4 |
0 |
0 |
|
100% |
| backend / tests / test_invalidate_cache.py |
TestInvalidateCache.test_returns_500_on_redis_error |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_invalidate_cache.py |
TestInvalidateCache.test_invalidates_cache_key_per_repo |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_invalidate_cache.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_aws_storage.py |
test_init |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_aws_storage.py |
test_double_init |
|
3 |
0 |
1 |
|
100% |
| backend / tests / test_utils / test_aws_storage.py |
test_generate_site_id_not_initialized |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_aws_storage.py |
test_get_file_not_initialized |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_aws_storage.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_github_client.py |
test_init |
|
2 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_github_client.py |
test_double_init |
|
3 |
0 |
1 |
|
100% |
| backend / tests / test_utils / test_github_client.py |
test_get_latest_commits_not_initialized |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_github_client.py |
test_get_commit_statuses_not_initialized |
|
3 |
0 |
0 |
|
100% |
| backend / tests / test_utils / test_github_client.py |
(no function) |
|
11 |
0 |
0 |
|
100% |