Coverage report: 96.16%

Files Functions Classes

coverage.py v7.13.4, created at 2026-06-17 01:43 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
config / settings.py _get_allowed_domains   100.00% 7 0 0   100.00% 4 0   100.00%
config / settings.py _check_ip_private   100.00% 3 0 0   100.00% 2 0   100.00%
config / settings.py _resolve_hostname_cached   100.00% 1 0 0   100.00% 0 0   100.00%
config / settings.py _resolve_hostname   100.00% 11 0 0   100.00% 0 0   100.00%
config / settings.py is_private_ip   100.00% 13 0 0   100.00% 2 0   100.00%
config / settings.py _validate_base_url_with_allowed_domains   100.00% 13 0 0   100.00% 8 0   100.00%
config / settings.py APIConfig.validate_base_url   100.00% 1 0 0   100.00% 0 0   100.00%
config / settings.py LogConfig.validate_log_file   100.00% 4 0 0   100.00% 2 0   100.00%
config / settings.py Settings.validate_environment   100.00% 10 0 0   100.00% 4 0   100.00%
config / settings.py Settings.validate_production_secrets   100.00% 4 0 0   100.00% 4 0   100.00%
config / settings.py Settings.validate_production_https   100.00% 4 0 0   100.00% 4 0   100.00%
config / settings.py Settings.is_development   100.00% 1 0 0   100.00% 0 0   100.00%
config / settings.py Settings.is_testing   100.00% 1 0 0   100.00% 0 0   100.00%
config / settings.py Settings.is_production   100.00% 1 0 0   100.00% 0 0   100.00%
config / settings.py Settings.is_staging   100.00% 1 0 0   100.00% 0 0   100.00%
config / settings.py Settings.is_production_like   100.00% 1 0 0   100.00% 0 0   100.00%
config / settings.py Settings.get_log_level   100.00% 2 0 0   100.00% 0 0   100.00%
config / settings.py Settings.to_dict   100.00% 13 0 0   75.00% 12 3   88.00%
config / settings.py get_settings   100.00% 3 0 0   100.00% 2 0   100.00%
config / settings.py reload_settings   100.00% 2 0 0   100.00% 0 0   100.00%
config / settings.py (no function)   97.27% 110 3 0   100.00% 0 0   97.27%
models / responses.py _is_strippable_char   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py _strip_invisible_chars   100.00% 3 0 0   100.00% 0 0   100.00%
models / responses.py sanitize_user_content   100.00% 3 0 0   100.00% 2 0   100.00%
models / responses.py _validate_netloc   92.00% 25 2 0   83.33% 12 2   89.19%
models / responses.py _normalize_url   100.00% 11 0 0   100.00% 4 0   100.00%
models / responses.py _ensure_website_max_length   100.00% 3 0 0   100.00% 2 0   100.00%
models / responses.py _validate_scheme_less_url   100.00% 12 0 0   100.00% 8 0   100.00%
models / responses.py Post.sanitize_post_content   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py Comment.sanitize_comment_content   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py Geo.sanitize_geo_content   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py Address.sanitize_address_content   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py Company.sanitize_company_content   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py User.sanitize_user_fields   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py User.validate_website_scheme   95.83% 24 1 0   93.75% 16 1   95.00%
models / responses.py Todo.sanitize_todo_title   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py Album.sanitize_album_title   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py Photo.sanitize_photo_title   100.00% 1 0 0   100.00% 0 0   100.00%
models / responses.py Photo.validate_url_scheme   100.00% 13 0 0   100.00% 8 0   100.00%
models / responses.py (no function)   100.00% 110 0 0   100.00% 0 0   100.00%
utils / api_client.py exponential_backoff_with_jitter   100.00% 4 0 0   100.00% 0 0   100.00%
utils / api_client.py _validate_optional_int   100.00% 2 0 0   100.00% 2 0   100.00%
utils / api_client.py APIHTTPError.__init__   100.00% 3 0 0   100.00% 0 0   100.00%
utils / api_client.py APIJSONDecodeError.__init__   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py _safe_parse_json   100.00% 4 0 0   100.00% 0 0   100.00%
utils / api_client.py _map_request_error   100.00% 13 0 0   100.00% 6 0   100.00%
utils / api_client.py _resolve_client_config   100.00% 10 0 0   100.00% 4 0   100.00%
utils / api_client.py _classify_error   100.00% 4 0 0   100.00% 2 0   100.00%
utils / api_client.py SyncAPIClient.__init__   100.00% 4 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncAPIClient.__enter__   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncAPIClient.__exit__   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncAPIClient.close   100.00% 5 0 0   50.00% 2 1   85.71%
utils / api_client.py SyncAPIClient._make_request_with_retry   96.30% 27 1 0   90.00% 10 1   94.59%
utils / api_client.py SyncAPIClient.get   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncAPIClient.post   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncAPIClient.put   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncAPIClient.delete   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncAPIClient.patch   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_posts   100.00% 9 0 0   100.00% 4 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_post   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.create_post   100.00% 3 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_users   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_user   0.00% 2 2 0   100.00% 0 0   0.00%
utils / api_client.py SyncJSONPlaceholderClient.get_todos   100.00% 11 0 0   100.00% 6 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_todo   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.create_todo   100.00% 3 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.update_todo   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_comments   100.00% 5 0 0   100.00% 2 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_albums   100.00% 6 0 0   100.00% 2 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.get_photos   100.00% 5 0 0   100.00% 2 0   100.00%
utils / api_client.py SyncJSONPlaceholderClient.health_check   100.00% 8 0 0   100.00% 0 0   100.00%
utils / api_client.py _log_error_with_stderr_fallback   77.78% 9 2 0   100.00% 0 0   77.78%
utils / api_client.py AsyncAPIClient.__init__   100.00% 4 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient.__aenter__   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient._log_aclose_error_with_fallback   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient._close_async_client   100.00% 18 0 0   100.00% 6 0   100.00%
utils / api_client.py AsyncAPIClient.__aexit__   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient.aclose   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient._make_request_with_retry   100.00% 27 0 0   100.00% 10 0   100.00%
utils / api_client.py AsyncAPIClient.get   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient.post   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient.put   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient.delete   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncAPIClient.patch   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_posts   100.00% 9 0 0   100.00% 4 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_post   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.create_post   100.00% 3 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.update_post   100.00% 3 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.delete_post   100.00% 1 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_users   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_user   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_todos   100.00% 11 0 0   100.00% 6 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_todo   0.00% 2 2 0   100.00% 0 0   0.00%
utils / api_client.py AsyncJSONPlaceholderClient.create_todo   0.00% 3 3 0   100.00% 0 0   0.00%
utils / api_client.py AsyncJSONPlaceholderClient.update_todo   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.create_user   100.00% 2 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.bulk_create_users   100.00% 18 0 0   100.00% 10 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_comments   100.00% 5 0 0   100.00% 2 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_albums   100.00% 6 0 0   100.00% 2 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_photos   100.00% 5 0 0   100.00% 2 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_user_data   100.00% 6 0 0   100.00% 0 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.health_check   87.50% 8 1 0   100.00% 0 0   87.50%
utils / api_client.py AsyncJSONPlaceholderClient.get_multiple_users   100.00% 8 0 0   100.00% 2 0   100.00%
utils / api_client.py AsyncJSONPlaceholderClient.get_multiple_users.fetch_with_semaphore   87.50% 8 1 0   100.00% 0 0   87.50%
utils / api_client.py create_client   0.00% 1 1 0   100.00% 0 0   0.00%
utils / api_client.py main   25.93% 27 20 0   0.00% 6 0   21.21%
utils / api_client.py (no function)   100.00% 89 0 2   100.00% 0 0   100.00%
utils / github_client.py validate_github_username   100.00% 2 0 0   100.00% 2 0   100.00%
utils / github_client.py validate_github_repo   100.00% 2 0 0   100.00% 2 0   100.00%
utils / github_client.py _redact_body_preview   100.00% 2 0 0   100.00% 0 0   100.00%
utils / github_client.py _SanitizedJSONDecodeError.__init__   100.00% 6 0 0   100.00% 0 0   100.00%
utils / github_client.py _SanitizedJSONDecodeError.__reduce__   100.00% 1 0 0   100.00% 0 0   100.00%
utils / github_client.py RateLimitError.__init__   100.00% 8 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient.__init__   100.00% 10 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._log_and_sleep_for_retry   100.00% 6 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient.__aenter__   100.00% 2 0 0   100.00% 0 0   100.00%
utils / github_client.py AsyncGitHubClient._close_async_client   100.00% 20 0 0   100.00% 6 0   100.00%
utils / github_client.py AsyncGitHubClient.__aexit__   100.00% 1 0 0   100.00% 0 0   100.00%
utils / github_client.py AsyncGitHubClient.aclose   100.00% 1 0 0   100.00% 0 0   100.00%
utils / github_client.py AsyncGitHubClient.get_user   100.00% 5 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient.get_repos   100.00% 10 0 0   100.00% 6 0   100.00%
utils / github_client.py AsyncGitHubClient.get_repo   100.00% 6 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._parse_rate_limit_header   100.00% 8 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._prepare_headers   100.00% 4 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._check_rate_limit_warning   100.00% 9 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._handle_304_response   100.00% 5 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._handle_403_response   100.00% 16 0 0   90.00% 10 1   96.15%
utils / github_client.py AsyncGitHubClient._handle_5xx_response   100.00% 7 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._parse_json_response   100.00% 7 0 0   100.00% 0 0   100.00%
utils / github_client.py AsyncGitHubClient._handle_http_status_error   100.00% 14 0 1   100.00% 6 0   100.00%
utils / github_client.py AsyncGitHubClient._update_etag_cache   100.00% 16 0 0   100.00% 6 0   100.00%
utils / github_client.py AsyncGitHubClient._cache_key   100.00% 8 0 0   100.00% 2 0   100.00%
utils / github_client.py AsyncGitHubClient._enforce_cache_limit   90.91% 22 2 0   100.00% 6 0   92.86%
utils / github_client.py AsyncGitHubClient._request   98.46% 65 1 0   92.31% 26 2   96.70%
utils / github_client.py (no function)   100.00% 58 0 0   100.00% 0 0   100.00%
utils / logger.py _is_sentry_debug_enabled   100.00% 1 0 0   100.00% 0 0   100.00%
utils / logger.py _sentry_debug_detail   100.00% 3 0 0   100.00% 2 0   100.00%
utils / logger.py _emit_sentry_send_error   100.00% 8 0 0   100.00% 2 0   100.00%
utils / logger.py _emit_permanent_warning   85.71% 7 1 0   75.00% 4 1   81.82%
utils / logger.py _emit_sentry_bug_error   100.00% 2 0 0   100.00% 0 0   100.00%
utils / logger.py _emit_outside_except_warning   100.00% 1 0 0   100.00% 0 0   100.00%
utils / logger.py _emit_invalid_exc_info_warning   100.00% 1 0 0   100.00% 0 0   100.00%
utils / logger.py _is_valid_exc_info_tuple   70.00% 10 3 0   62.50% 8 3   66.67%
utils / logger.py _emit_safe_error_summary_warning   100.00% 1 0 0   100.00% 0 0   100.00%
utils / logger.py _safe_error_summary   100.00% 10 0 0   100.00% 2 0   100.00%
utils / logger.py _emit_import_error_warnings   100.00% 27 0 0   100.00% 14 0   100.00%
utils / logger.py _sentry_processor   100.00% 51 0 0   100.00% 22 0   100.00%
utils / logger.py get_logger   100.00% 4 0 0   100.00% 2 0   100.00%
utils / logger.py _configure_structlog   100.00% 5 0 0   100.00% 2 0   100.00%
utils / logger.py (no function)   100.00% 31 0 0   100.00% 0 0   100.00%
utils / sentry_init.py _has_internal_tag   100.00% 5 0 0   100.00% 4 0   100.00%
utils / sentry_init.py _safe_log_warning   100.00% 9 0 0   100.00% 0 0   100.00%
utils / sentry_init.py _scrub_exception_frame   100.00% 12 0 0   100.00% 8 0   100.00%
utils / sentry_init.py _scrub_exception_stacktrace   100.00% 8 0 0   100.00% 4 0   100.00%
utils / sentry_init.py _scrub_exception_value_item_extra_keys   80.00% 10 2 0   80.00% 10 2   80.00%
utils / sentry_init.py _scrub_exception_value_item   100.00% 17 0 0   100.00% 12 0   100.00%
utils / sentry_init.py _is_sensitive_key   100.00% 6 0 0   100.00% 2 0   100.00%
utils / sentry_init.py _scrub_list_item   100.00% 14 0 0   91.67% 12 1   96.15%
utils / sentry_init.py _scrub_span_item   94.12% 17 1 0   90.00% 10 1   92.59%
utils / sentry_init.py _scrub_sensitive_data   100.00% 16 0 0   100.00% 12 0   100.00%
utils / sentry_init.py _scrub_request_field   83.33% 6 1 0   75.00% 4 1   80.00%
utils / sentry_init.py _scrub_query_string   100.00% 3 0 0   100.00% 0 0   100.00%
utils / sentry_init.py _scrub_path_params   100.00% 10 0 0   100.00% 6 0   100.00%
utils / sentry_init.py _scrub_request_query_string   100.00% 3 0 0   100.00% 2 0   100.00%
utils / sentry_init.py _scrub_url   100.00% 12 0 0   100.00% 4 0   100.00%
utils / sentry_init.py _scrub_tags_item   92.86% 14 1 0   90.00% 10 1   91.67%
utils / sentry_init.py _scrub_exception_field   100.00% 15 0 0   100.00% 6 0   100.00%
utils / sentry_init.py _scrub_sentry_field   100.00% 19 0 0   100.00% 16 0   100.00%
utils / sentry_init.py _set_internal_extras   100.00% 5 0 0   100.00% 6 0   100.00%
utils / sentry_init.py _emit_scrub_failure_to_sentry   100.00% 17 0 0   100.00% 4 0   100.00%
utils / sentry_init.py _before_send   90.70% 43 4 0   100.00% 18 0   93.44%
utils / sentry_init.py init_sentry   100.00% 4 0 0   100.00% 2 0   100.00%
utils / sentry_init.py _init_sentry_unlocked   100.00% 30 0 0   100.00% 8 0   100.00%
utils / sentry_init.py is_sentry_initialized   100.00% 2 0 0   100.00% 0 0   100.00%
utils / sentry_init.py reset_sentry_state   100.00% 2 0 0   100.00% 0 0   100.00%
utils / sentry_init.py (no function)   98.11% 53 1 0   50.00% 2 1   96.36%
Total     96.69% 1690 56 3   94.40% 500 22   96.16%

No items found using the specified filter.