v2.10.1 (#702)
Co-authored-by: Guillaume LE GOFF <guillaume.lgf@gmail.com> Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com> Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai> Co-authored-by: Val <102326092+vdeva@users.noreply.github.com> Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
parent
228f3c65a9
commit
f71bfd3b8c
57 changed files with 2950 additions and 402 deletions
|
|
@ -34,7 +34,7 @@ TEST_SIGN_IN_URL = "https://console.mistral.ai/codestral/cli/authenticate#" + ur
|
|||
"complete_token": f"complete-token-{TEST_PROCESS_ID}",
|
||||
"state": f"state-{TEST_PROCESS_ID}",
|
||||
})
|
||||
TEST_POLL_URL = "https://api.mistral.ai/api/vibe/sign-in/poll/poll-token-process-1"
|
||||
TEST_POLL_URL = "https://console.mistral.ai/api/vibe/sign-in/poll/poll-token-process-1"
|
||||
|
||||
|
||||
def build_code_challenge(verifier: str) -> str:
|
||||
|
|
@ -94,6 +94,50 @@ async def test_authenticate_returns_api_key_after_pending_poll() -> None:
|
|||
assert gateway.exchange_requests[0].exchange_token == "exchange-1"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_start_attempt_returns_attempt_without_opening_browser() -> None:
|
||||
opened_urls: list[str] = []
|
||||
gateway, service = build_test_service(
|
||||
poll_results=[], open_browser=lambda url: opened_urls.append(url) or True
|
||||
)
|
||||
|
||||
attempt = await service.start_attempt()
|
||||
|
||||
assert opened_urls == []
|
||||
assert attempt.process_id == TEST_PROCESS_ID
|
||||
assert attempt.sign_in_url == TEST_SIGN_IN_URL
|
||||
assert attempt.poll_url == TEST_POLL_URL
|
||||
assert attempt.expires_at == build_sign_in_process(TEST_NOW).expires_at
|
||||
assert gateway.exchange_requests == []
|
||||
assert gateway.code_challenges == [build_code_challenge(attempt.code_verifier)]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_complete_attempt_returns_api_key_without_opening_browser() -> None:
|
||||
opened_urls: list[str] = []
|
||||
statuses: list[BrowserSignInStatus] = []
|
||||
gateway, service = build_test_service(
|
||||
poll_results=[
|
||||
BrowserSignInPollResult(status="pending"),
|
||||
BrowserSignInPollResult(status="completed", exchange_token="exchange-1"),
|
||||
],
|
||||
open_browser=lambda url: opened_urls.append(url) or True,
|
||||
)
|
||||
attempt = await service.start_attempt()
|
||||
|
||||
api_key = await service.complete_attempt(attempt, status_callback=statuses.append)
|
||||
|
||||
assert api_key == "sk-browser-key"
|
||||
assert opened_urls == []
|
||||
assert statuses == [
|
||||
BrowserSignInStatus.WAITING_FOR_BROWSER_SIGN_IN,
|
||||
BrowserSignInStatus.EXCHANGING,
|
||||
BrowserSignInStatus.COMPLETED,
|
||||
]
|
||||
assert gateway.polled_urls == [TEST_POLL_URL, TEST_POLL_URL]
|
||||
assert gateway.exchange_requests[0].exchange_token == "exchange-1"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_authenticate_raises_when_polling_expires() -> None:
|
||||
opened_urls: list[str] = []
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue