litellm/tests/unit/proxy/auth
devin-ai-integration[bot] d7c3588efd
feat(nvidia_riva)!: add riva_offline mode for offline-only ASR models (#41021)
* feat(nvidia_riva): add riva_offline mode for offline-only ASR models

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(nvidia_riva): assert offline vs streaming via fake service call tracking

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* chore(ui): regenerate schema.d.ts after user soft_budget docstring removal

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(nvidia_riva): parse riva_offline strings, map oversize offline audio to 413

A multipart riva_offline=false no longer turns offline mode on, a malformed value drops under drop_params and answers 400 without it, and a Riva RESOURCE_EXHAUSTED for a message over the server's max now returns a non-retryable 413 instead of a retried 429

* fix(nvidia_riva): apply the request timeout to offline recognition and keep riva_offline on an api_base override

Offline Recognize now runs as a gRPC future waited on with the request
timeout, so a stalled Riva server returns a 408 and the call is cancelled.
riva_offline is a mode flag, not a credential, so an api_base override no
longer clears it. The 413 hint for audio over the gRPC message limit is
reworded, and the new tests carry type annotations.

* fix(nvidia_riva): wait the request timeout in seconds whatever its form and cap the riva client to versions that import

A timeout from os.environ, a multipart form field, or an httpx.Timeout reached the gRPC future as a string or object,
so result() raised TypeError and every offline call came back as a false 408. The handler now turns the timeout into
float seconds with CompletionTimeout.as_limit, taking the read limit of an httpx.Timeout, for both the offline future
and the streaming deadline

The stt-nvidia-riva extra caps nvidia-riva-client below 2.17, since every later release either pins an older grpcio
or ships stubs that need a newer one than the grpcio==1.78.0 pin, so a fresh install failed at import

* fix(nvidia_riva): parse the timeout only where the call uses it and drop the riva client cap

A malformed timeout no longer fails streaming calls on clients that take no
timeout. On offline calls it is a 400, or the default under drop_params, and
an httpx.Timeout with no read limit waits the default instead of forever.

The nvidia-riva-client cap made installs next to a newer client unresolvable,
so the extra goes back to main's specifier.

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: mateo-berri <277851410+mateo-berri@users.noreply.github.com>
2026-10-20 23:03:56 +00:00
..
__init__.py
test_admin_viewer_handler_access.py
test_auth_checks.py
test_auth_checks_object_access_and_lookup.py
test_auth_exception_handler.py
test_auth_hot_path_network_requests.py
test_auth_object_prefetch.py
test_auth_utils.py feat(nvidia_riva)!: add riva_offline mode for offline-only ASR models (#41021) 2026-10-20 23:03:56 +00:00
test_authorization.py
test_banned_params_extra_body.py
test_cli_auth.py
test_custom_auth_end_user_budget.py
test_default_end_user_budget_simple.py
test_fallback_budget.py
test_fallback_model_access.py
test_handle_jwt.py
test_info_routes.py
test_jwt.py
test_litellm_license.py
test_login_utils.py
test_master_key_boot_check.py
test_mcp_ip_filtering.py
test_model_access_group_budgets.py
test_model_checks.py
test_model_checks_fallbacks.py
test_models_fallback_endpoint.py
test_multi_budget_windows.py
test_multipart_bypass_repro.py
test_network.py
test_oauth2_proxy_hook.py
test_object_permission_loading.py
test_onboarding.py
test_organization_budget_enforcement.py
test_password_hashing.py
test_password_policy.py
test_personal_key_team_model_access.py
test_proxy_routes.py
test_rds_iam_token.py
test_resolvers_exceptions.py
test_resolvers_grants.py
test_resolvers_models.py
test_resolvers_seam.py
test_resolvers_store.py
test_route_checks.py
test_router_override_fallback_auth.py
test_search_tool_deny_by_default.py
test_team_grants.py
test_team_member_budget.py
test_unmapped_model_budget_enforcement.py
test_user_api_key_auth.py
test_user_api_key_auth_request_flow.py