2026-03-09 Flatten enum-like schema oneOfs for python codegen

This commit is contained in:
Shaqayeq
2026-03-09 13:35:44 -07:00
parent eb98b16533
commit ffe4006782
3 changed files with 125 additions and 126 deletions

View File

@@ -2,6 +2,7 @@ from __future__ import annotations
import ast
import importlib.util
import json
import platform
import sys
from pathlib import Path
@@ -51,6 +52,36 @@ def test_generate_types_wires_all_generation_steps() -> None:
]
def test_schema_normalization_only_flattens_string_literal_oneofs() -> None:
script = _load_update_script_module()
schema = json.loads(
(
ROOT.parent.parent
/ "codex-rs"
/ "app-server-protocol"
/ "schema"
/ "json"
/ "codex_app_server_protocol.v2.schemas.json"
).read_text()
)
definitions = schema["definitions"]
flattened = [
name
for name, definition in definitions.items()
if isinstance(definition, dict)
and script._flatten_string_enum_one_of(definition.copy())
]
assert flattened == [
"AuthMode",
"CommandExecOutputStream",
"ExperimentalFeatureStage",
"InputModality",
"MessagePhase",
]
def test_bundled_binaries_exist_for_all_supported_platforms() -> None:
script = _load_update_script_module()
for platform_key in script.PLATFORMS: