fix: resolve language_version in testgen_repair endpoint (#2494)
## Summary - The `/testgen_repair` endpoint was missed when `language_version` support was added in #2488 - Clients that stopped sending `python_version` (codeflash-ai/codeflash#1914) hit `400 - Python version is required` - Adds `language_version` field and `resolve_python_version` validator to `TestRepairSchema`, matching the pattern in `OptimizeSchema`/`TestGenSchema` - Replaces `python_version=data.python_version` with `language_version=data.language_version` when constructing `TestGenSchema` in the repair handler ## Test plan - [ ] Deploy and verify testgen repair calls no longer return 400 - [ ] Verify old clients sending `python_version` still work (backward compat via validator)
This commit is contained in:
parent
927cc99588
commit
40def05997
2 changed files with 12 additions and 1 deletions
|
|
@ -1,6 +1,9 @@
|
||||||
"""Request/response schemas for the testgen review and repair endpoints."""
|
"""Request/response schemas for the testgen review and repair endpoints."""
|
||||||
|
|
||||||
|
from typing import Self
|
||||||
|
|
||||||
from ninja import Schema
|
from ninja import Schema
|
||||||
|
from pydantic import model_validator
|
||||||
|
|
||||||
from aiservice.models.functions_to_optimize import FunctionToOptimize
|
from aiservice.models.functions_to_optimize import FunctionToOptimize
|
||||||
|
|
||||||
|
|
@ -82,6 +85,7 @@ class TestRepairSchema(Schema):
|
||||||
test_timeout: int
|
test_timeout: int
|
||||||
trace_id: str
|
trace_id: str
|
||||||
python_version: str | None = None
|
python_version: str | None = None
|
||||||
|
language_version: str | None = None
|
||||||
language: str = "python"
|
language: str = "python"
|
||||||
codeflash_version: str | None = None
|
codeflash_version: str | None = None
|
||||||
call_sequence: int | None = None
|
call_sequence: int | None = None
|
||||||
|
|
@ -89,6 +93,13 @@ class TestRepairSchema(Schema):
|
||||||
previous_repair_errors: dict[str, str] = {}
|
previous_repair_errors: dict[str, str] = {}
|
||||||
module_source_code: str = ""
|
module_source_code: str = ""
|
||||||
|
|
||||||
|
@model_validator(mode="after")
|
||||||
|
def resolve_python_version(self) -> Self:
|
||||||
|
"""Resolve python_version from language_version for backward compatibility."""
|
||||||
|
if self.python_version is None and self.language_version is not None and self.language == "python":
|
||||||
|
self.python_version = self.language_version
|
||||||
|
return self
|
||||||
|
|
||||||
|
|
||||||
class TestRepairResponseSchema(Schema):
|
class TestRepairResponseSchema(Schema):
|
||||||
generated_tests: str
|
generated_tests: str
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ async def testgen_repair(
|
||||||
test_framework=data.test_framework,
|
test_framework=data.test_framework,
|
||||||
test_timeout=data.test_timeout,
|
test_timeout=data.test_timeout,
|
||||||
trace_id=data.trace_id,
|
trace_id=data.trace_id,
|
||||||
python_version=data.python_version,
|
language_version=data.language_version,
|
||||||
language=data.language,
|
language=data.language,
|
||||||
codeflash_version=data.codeflash_version,
|
codeflash_version=data.codeflash_version,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue