Spaces:
Sleeping
Sleeping
| from contextlib import redirect_stdout | |
| from io import StringIO | |
| import json | |
| from calender_en import inference | |
| def test_inference_runs_end_to_end_without_crashing() -> None: | |
| output = StringIO() | |
| with redirect_stdout(output): | |
| inference.main() | |
| rendered = output.getvalue() | |
| lines = rendered.strip().splitlines() | |
| assert len(lines) == 6 | |
| assert ( | |
| lines[0] | |
| == "[START] task=smart_calendar_resolution env=calender_en model=deterministic-baseline" | |
| ) | |
| assert lines[-1] == "[END] success=true steps=4 rewards=1.00,1.50,4.00,3.00" | |
| assert all(line.startswith("[STEP]") for line in lines[1:5]) | |
| def test_inference_output_is_deterministic() -> None: | |
| first = StringIO() | |
| second = StringIO() | |
| with redirect_stdout(first): | |
| inference.main() | |
| with redirect_stdout(second): | |
| inference.main() | |
| assert first.getvalue() == second.getvalue() | |
| def test_inference_reads_model_name_from_environment(monkeypatch) -> None: | |
| output = StringIO() | |
| monkeypatch.setenv("MODEL_NAME", "hf-eval-check") | |
| with redirect_stdout(output): | |
| inference.main() | |
| lines = output.getvalue().strip().splitlines() | |
| assert lines[0] == ( | |
| "[START] task=smart_calendar_resolution env=calender_en model=hf-eval-check" | |
| ) | |
| def test_inference_uses_hackathon_proxy_env_vars(monkeypatch) -> None: | |
| captured: dict[str, object] = {} | |
| class FakeResponse: | |
| def __init__(self, content: str): | |
| class Message: | |
| def __init__(self, value: str): | |
| self.content = value | |
| class Choice: | |
| def __init__(self, value: str): | |
| self.message = Message(value) | |
| self.choices = [Choice(content)] | |
| class FakeCompletions: | |
| def create(self, **kwargs): | |
| captured["request"] = kwargs | |
| payload = json.loads(kwargs["messages"][1]["content"]) | |
| return FakeResponse(json.dumps(payload["planned_action"])) | |
| class FakeChat: | |
| completions = FakeCompletions() | |
| class FakeOpenAI: | |
| def __init__(self, *, base_url: str, api_key: str): | |
| captured["base_url"] = base_url | |
| captured["api_key"] = api_key | |
| self.chat = FakeChat() | |
| monkeypatch.setenv("API_BASE_URL", "https://proxy.example.com/v1") | |
| monkeypatch.setenv("API_KEY", "proxy-test-key") | |
| monkeypatch.setenv("MODEL_NAME", "meta-hackathon-model") | |
| monkeypatch.setattr(inference, "OpenAI", FakeOpenAI) | |
| output = StringIO() | |
| with redirect_stdout(output): | |
| inference.main() | |
| rendered = output.getvalue().strip().splitlines() | |
| assert rendered[0] == ( | |
| "[START] task=smart_calendar_resolution env=calender_en " | |
| "model=meta-hackathon-model" | |
| ) | |
| assert captured["base_url"] == "https://proxy.example.com/v1" | |
| assert captured["api_key"] == "proxy-test-key" | |
| assert captured["request"]["model"] == "meta-hackathon-model" | |