Files
codex/sdk/python/tests/installed_sdk_smoke.py
Ahmed Ibrahim c55db1b8d9 Test Python SDK against the built CLI and installed runtime (#44053)
## 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
2026-09-09 04:40:22 +00:00

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()