mirror of
https://github.com/openai/codex.git
synced 2026-09-13 11:47:17 +00:00
## Why Python SDK CI needs to exercise the checkout's CLI while retaining coverage of the wheel installation and its default runtime. ## What changed - Run the Python SDK test suite against the same Bazel-built CLI as the TypeScript SDK tests. Build and stage `codex-code-mode-host` alongside the CLI so it can be discovered. - Make the Python test harness prefer `CODEX_EXEC_PATH`, then a local debug build, then the installed runtime. Exclude optional turn-cost probes from recorded model requests. - Add a separate installation job that builds the Python SDK wheel and installs it in a fresh environment. ## Testing The installation smoke test verifies that imports resolve to the installed SDK and that its default runtime completes a mocked turn with the expected user input and final response. GitOrigin-RevId: 8e3126742a014e2cf042afe799bc657e1ea2a282
35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
"""Exercise a built SDK's default runtime in an otherwise isolated environment."""
|
|
|
|
from dataclasses import replace
|
|
from importlib.metadata import distribution, version
|
|
from pathlib import Path
|
|
from tempfile import TemporaryDirectory
|
|
|
|
from app_server_harness import AppServerHarness
|
|
|
|
import openai_codex
|
|
from openai_codex import Codex
|
|
|
|
|
|
def main() -> None:
|
|
installed_root = Path(distribution("openai-codex").locate_file("")).resolve()
|
|
assert Path(openai_codex.__file__).resolve().is_relative_to(installed_root), (
|
|
"The smoke test must import the installed SDK, not the source checkout"
|
|
)
|
|
|
|
with TemporaryDirectory() as directory, AppServerHarness(Path(directory)) as harness:
|
|
harness.responses.enqueue_assistant_message("Installed SDK works")
|
|
config = replace(harness.app_server_config(), codex_bin=None)
|
|
with Codex(config=config) as codex:
|
|
result = codex.thread_start().run("Check the installed SDK")
|
|
assert result.final_response == "Installed SDK works"
|
|
assert harness.responses.single_request().message_input_texts("user")[-1:] == [
|
|
"Check the installed SDK"
|
|
]
|
|
|
|
print(f"Installed SDK passed with CLI runtime {version('openai-codex-cli-bin')}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|