<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="57" time="1.461" timestamp="2026-10-16T19:27:28.272347+00:00" hostname="runnervm8k3b6"><testcase classname="tests.test_client" name="test_session_cookie_precedence[None-from-arg-session=from-arg]" file="tests/test_client.py" line="23" time="0.115" /><testcase classname="tests.test_client" name="test_session_cookie_precedence[from-env-None-session=from-env]" file="tests/test_client.py" line="23" time="0.021" /><testcase classname="tests.test_client" name="test_session_cookie_precedence[from-env-from-arg-session=from-arg]" file="tests/test_client.py" line="23" time="0.020" /><testcase classname="tests.test_client" name="test_no_cookie_sent_when_unset" file="tests/test_client.py" line="48" time="0.019" /><testcase classname="tests.test_client" name="test_get_version_returns_parsed_body" file="tests/test_client.py" line="59" time="0.019" /><testcase classname="tests.test_client" name="test_aget_version_returns_parsed_body" file="tests/test_client.py" line="69" time="0.021" /><testcase classname="tests.test_client" name="test_context_manager_closes_underlying_client" file="tests/test_client.py" line="79" time="0.037" /><testcase classname="tests.test_client" name="test_get_version_raises_api_error" file="tests/test_client.py" line="89" time="0.019" /><testcase classname="tests.test_client" name="test_aget_version_raises_api_error" file="tests/test_client.py" line="101" time="0.019" /><testcase classname="tests.test_client" name="test_close_closes_sync_client" file="tests/test_client.py" line="112" time="0.038" /><testcase classname="tests.test_client" name="test_aclose_closes_async_client" file="tests/test_client.py" line="121" time="0.039" /><testcase classname="tests.test_client" name="test_async_context_manager_closes_underlying_client" file="tests/test_client.py" line="130" time="0.038" /><testcase classname="tests.test_client" name="test_default_construction_wires_base_url_cookies_and_retry" file="tests/test_client.py" line="143" time="0.037" /><testcase classname="tests.test_client" name="test_raise_on_unexpected_status_true_raises_instead_of_returning_none" file="tests/test_client.py" line="166" time="0.019" /><testcase classname="tests.test_client" name="test_get_version_raises_typeerror_for_undocumented_status" file="tests/test_client.py" line="183" time="0.021" /><testcase classname="tests.test_client" name="test_aget_version_raises_typeerror_for_undocumented_status" file="tests/test_client.py" line="197" time="0.019" /><testcase classname="tests.test_errors" name="test_decode_error_returns_none_below_400" file="tests/test_errors.py" line="14" time="0.001" /><testcase classname="tests.test_errors" name="test_decode_error_treats_400_as_an_error" file="tests/test_errors.py" line="19" time="0.001" /><testcase classname="tests.test_errors" name="test_decode_error_parses_code_and_message" file="tests/test_errors.py" line="26" time="0.001" /><testcase classname="tests.test_errors" name="test_decode_error_reads_request_id_header" file="tests/test_errors.py" line="37" time="0.001" /><testcase classname="tests.test_errors" name="test_decode_error_tolerates_non_json_body" file="tests/test_errors.py" line="45" time="0.001" /><testcase classname="tests.test_errors" name="test_decode_error_defaults_code_when_missing" file="tests/test_errors.py" line="54" time="0.001" /><testcase classname="tests.test_errors" name="test_decode_error_defaults_message_when_missing" file="tests/test_errors.py" line="61" time="0.001" /><testcase classname="tests.test_errors" name="test_api_error_str_with_and_without_request_id" file="tests/test_errors.py" line="68" time="0.001" /><testcase classname="tests.test_errors" name="test_api_error_args_reflect_str" file="tests/test_errors.py" line="76" time="0.001" /><testcase classname="tests.test_pagination" name="test_iter_repos_walks_every_page" file="tests/test_pagination.py" line="57" time="0.003" /><testcase classname="tests.test_pagination" name="test_iter_repos_forwards_forge_filter" file="tests/test_pagination.py" line="76" time="0.001" /><testcase classname="tests.test_pagination" name="test_iter_repos_raises_api_error" file="tests/test_pagination.py" line="88" time="0.002" /><testcase classname="tests.test_pagination" name="test_iter_repos_stops_on_undocumented_status" file="tests/test_pagination.py" line="101" time="0.001" /><testcase classname="tests.test_pagination" name="test_aiter_repos_walks_every_page" file="tests/test_pagination.py" line="114" time="0.003" /><testcase classname="tests.test_pagination" name="test_aiter_repos_forwards_forge_filter" file="tests/test_pagination.py" line="136" time="0.002" /><testcase classname="tests.test_pagination" name="test_aiter_repos_raises_api_error" file="tests/test_pagination.py" line="149" time="0.002" /><testcase classname="tests.test_pagination" name="test_aiter_repos_stops_on_undocumented_status" file="tests/test_pagination.py" line="163" time="0.001" /><testcase classname="tests.test_pagination" name="test_iter_repos_raises_typeerror_for_unexpected_parsed_type" file="tests/test_pagination.py" line="175" time="0.002" /><testcase classname="tests.test_pagination" name="test_aiter_repos_raises_typeerror_for_unexpected_parsed_type" file="tests/test_pagination.py" line="191" time="0.001" /><testcase classname="tests.test_retry" name="test_retries_5xx_then_succeeds" file="tests/test_retry.py" line="39" time="0.001" /><testcase classname="tests.test_retry" name="test_never_retries_other_4xx" file="tests/test_retry.py" line="54" time="0.001" /><testcase classname="tests.test_retry" name="test_exhausts_max_retries_and_returns_last_response" file="tests/test_retry.py" line="69" time="0.001" /><testcase classname="tests.test_retry" name="test_retries_transport_error_then_succeeds" file="tests/test_retry.py" line="83" time="0.001" /><testcase classname="tests.test_retry" name="test_transport_error_exhausts_retries_after_correct_attempt_count" file="tests/test_retry.py" line="110" time="0.001" /><testcase classname="tests.test_retry" name="test_retry_after_seconds_header_takes_priority_over_backoff" file="tests/test_retry.py" line="132" time="0.001" /><testcase classname="tests.test_retry" name="test_retry_after_seconds_helper_parses_http_date" file="tests/test_retry.py" line="145" time="0.001" /><testcase classname="tests.test_retry" name="test_retry_after_seconds_helper_returns_none_when_absent" file="tests/test_retry.py" line="156" time="0.001" /><testcase classname="tests.test_retry" name="test_retry_after_seconds_helper_ignores_garbage" file="tests/test_retry.py" line="160" time="0.001" /><testcase classname="tests.test_retry" name="test_retry_after_seconds_helper_parses_naive_http_date" file="tests/test_retry.py" line="164" time="0.001" /><testcase classname="tests.test_retry" name="test_retry_after_seconds_helper_clamps_past_date_to_zero" file="tests/test_retry.py" line="175" time="0.001" /><testcase classname="tests.test_retry" name="test_should_retry_raises_without_response_or_exception" file="tests/test_retry.py" line="182" time="0.001" /><testcase classname="tests.test_retry" name="test_backoff_seconds_formula" file="tests/test_retry.py" line="188" time="0.001" /><testcase classname="tests.test_retry" name="test_async_retries_5xx_then_succeeds" file="tests/test_retry.py" line="205" time="0.001" /><testcase classname="tests.test_retry" name="test_async_never_retries_other_4xx" file="tests/test_retry.py" line="234" time="0.001" /><testcase classname="tests.test_retry" name="test_async_retries_transport_error_then_succeeds" file="tests/test_retry.py" line="254" time="0.001" /><testcase classname="tests.test_retry" name="test_async_transport_error_exhausts_retries_after_correct_attempt_count" file="tests/test_retry.py" line="285" time="0.001" /><testcase classname="tests.test_retry" name="test_async_exhausts_max_retries_and_returns_last_response" file="tests/test_retry.py" line="310" time="0.001" /><testcase classname="tests.test_retry" name="test_default_sync_transport_is_a_real_http_transport" file="tests/test_retry.py" line="346" time="0.019" /><testcase classname="tests.test_retry" name="test_default_async_transport_is_a_real_http_transport" file="tests/test_retry.py" line="350" time="0.019" /><testcase classname="tests.test_retry" name="test_sync_transport_error_raises_once_retries_exhausted" file="tests/test_retry.py" line="354" time="0.001" /><testcase classname="tests.test_retry" name="test_close_and_aclose_delegate_to_wrapped_transport" file="tests/test_retry.py" line="368" time="0.001" /></testsuite></testsuites>