Adam Manning
f3aa989b1b
test(cli): cover minimax-oauth resolution, refresh, menu wiring
Add and extend tests for the minimax-oauth provider across three test
modules.
New file: tests/test_minimax_oauth.py (15 tests)
- test_pkce_pair_produces_valid_s256: verifies PKCE verifier/challenge
pair produces a valid S256 hash and correct lengths
- test_request_user_code_happy_path: mocks httpx, verifies correct
POST parameters and response parsing
- test_request_user_code_state_mismatch_raises: verifies CSRF guard
- test_request_user_code_non_200_raises: verifies HTTP error handling
- test_poll_token_pending_then_success: verifies polling loop retries
on 'pending' and returns on 'success'
- test_poll_token_error_raises: verifies 'error' status raises AuthError
- test_poll_token_timeout_raises: verifies deadline expiry raises
- test_refresh_skip_when_not_expired: verifies no HTTP call when token
is fresh
- test_refresh_updates_access_token: verifies new access/refresh tokens
stored on successful refresh
- test_refresh_reuse_triggers_relogin_required: verifies
relogin_required=True on invalid_grant/refresh_token_reused
- test_resolve_credentials_requires_login: verifies AuthError when no
stored state
- test_provider_registry_contains_minimax_oauth: PROVIDER_REGISTRY key
- test_minimax_oauth_alias_resolves: portal/global/underscore aliases
- test_get_minimax_oauth_auth_status_not_logged_in
- test_get_minimax_oauth_auth_status_logged_in
Extended: tests/hermes_cli/test_runtime_provider_resolution.py
- test_minimax_oauth_runtime_returns_anthropic_messages_mode
- test_minimax_oauth_runtime_uses_inference_base_url
Extended: tests/hermes_cli/test_api_key_providers.py
- TestMinimaxOAuthProvider class (8 tests) covering registry keys,
auth_type, endpoints, client_id, aliases, CANONICAL_PROVIDERS
listing, _PROVIDER_MODELS entries, and aux model
2026-04-29 09:53:42 -07:00
..
2026-04-28 01:34:16 -07:00
2026-04-29 08:10:29 -07:00
2026-04-29 07:22:33 -07:00
2026-04-29 08:24:48 -07:00
2026-04-28 01:40:28 -07:00
2026-04-07 17:28:37 -07:00
2026-03-14 14:27:20 +03:00
2026-04-29 08:08:16 -07:00
2026-04-29 09:53:42 -07:00
2026-04-24 03:04:42 -07:00
2026-04-27 12:37:33 -07:00
2026-04-16 16:50:15 -07:00
2026-04-29 08:09:03 -07:00
2026-04-29 08:10:25 -07:00
2026-04-28 04:58:13 -07:00
2026-04-29 08:16:52 -07:00
2026-04-28 17:54:06 -05:00
2026-04-27 03:38:39 -07:00
2025-10-01 23:29:25 +00:00
2026-04-28 18:20:17 -07:00
2026-03-17 02:53:33 -07:00
2026-04-21 01:56:35 -07:00
2026-04-28 04:58:22 -07:00
2026-04-21 06:06:16 -07:00
2026-04-24 14:32:21 -07:00
2026-04-21 08:00:00 -07:00
2026-04-28 05:21:49 -07:00
2026-04-28 18:47:14 -05:00
2026-04-13 10:50:24 -07:00
2026-04-12 03:53:30 -07:00
2026-03-15 21:59:53 -07:00
2026-04-12 16:36:11 -07:00
2026-04-26 19:01:26 -07:00
2026-04-28 01:33:00 -07:00
2026-04-02 15:33:51 -07:00
2026-04-28 06:45:55 -07:00
2026-04-11 23:12:11 -07:00
2026-03-29 15:47:19 -07:00
2026-04-20 12:23:05 -07:00
2026-04-19 22:44:47 -07:00
2026-04-29 09:53:42 -07:00
2026-03-24 08:19:23 -07:00
2026-04-07 17:59:42 -07:00
2026-04-29 05:00:40 -07:00
2026-04-25 22:13:12 -07:00
2026-04-07 22:23:28 -07:00
2026-03-30 17:34:43 -07:00
2026-04-17 00:20:40 -07:00
2026-04-17 13:31:53 -07:00
2026-04-08 00:41:36 -07:00
2026-03-19 15:16:35 +01:00
2026-04-10 13:37:45 -07:00
2026-04-17 14:21:22 -07:00
2026-02-26 13:54:20 +03:00
2026-04-25 04:50:14 -07:00
2026-04-20 12:23:05 -07:00
2026-04-20 12:23:05 -07:00
2026-04-20 23:20:33 -07:00
2026-04-28 22:22:30 -07:00
2026-03-30 13:28:10 +09:00
2026-04-26 18:50:49 -07:00
2026-04-26 18:50:49 -07:00
2026-04-26 18:50:49 -07:00
2026-04-26 18:50:49 -07:00