| from pathlib import Path |
|
|
| from config import Settings |
| from gaia_client import GaiaClient |
|
|
|
|
| class Response: |
| headers = {"content-type": "application/json"} |
| content = b"{}" |
|
|
| def raise_for_status(self): |
| return None |
|
|
| def json(self): |
| return {"score": 100} |
|
|
|
|
| class Session: |
| def __init__(self): |
| self.post_call = None |
|
|
| def mount(self, *args): |
| pass |
|
|
| def post(self, url, json, timeout): |
| self.post_call = (url, json, timeout) |
| return Response() |
|
|
|
|
| def settings(tmp_path: Path) -> Settings: |
| return Settings( |
| api_url="https://example.test", |
| hf_token=None, |
| model_id="model", |
| vision_model_id="vision", |
| inference_provider=None, |
| asr_model_id="asr", |
| cache_dir=tmp_path, |
| request_timeout=10, |
| retries=1, |
| backoff_seconds=0, |
| max_steps=2, |
| use_cache=True, |
| stockfish_path=None, |
| ) |
|
|
|
|
| def test_submission_contract_is_unchanged(tmp_path): |
| session = Session() |
| client = GaiaClient(settings(tmp_path), session=session) |
| answer = {"task_id": "id", "submitted_answer": "A"} |
| assert client.submit("user", "https://code", [answer]) == {"score": 100} |
| url, payload, _ = session.post_call |
| assert url == "https://example.test/submit" |
| assert payload == { |
| "username": "user", |
| "agent_code": "https://code", |
| "answers": [answer], |
| } |
|
|