22
33from acp .schema import ReadTextFileRequest
44from scripts .gen_all import resolve_ref , schema_source_paths
5+ from scripts .gen_meta import generate_meta
56from scripts .gen_schema import generate_schema
67
78
@@ -13,6 +14,7 @@ def test_generated_field_descriptions_are_introspectable() -> None:
1314
1415def test_resolve_ref_accepts_schema_release_tags () -> None :
1516 assert resolve_ref ("schema-v1.16.0" ) == "refs/tags/schema-v1.16.0"
17+ assert resolve_ref ("schema-v2.0.0-alpha.3" ) == "refs/tags/schema-v2.0.0-alpha.3"
1618
1719
1820def test_resolve_ref_keeps_legacy_version_tags () -> None :
@@ -27,6 +29,12 @@ def test_schema_release_tags_prefer_v1_schema_layout() -> None:
2729 )
2830
2931
32+ def test_v2_generation_uses_v2_schema_layout () -> None :
33+ assert schema_source_paths ("refs/tags/schema-v2.0.0-alpha.3" , 2 ) == (
34+ ("schema/v2/schema.unstable.json" , "schema/v2/meta.unstable.json" ),
35+ )
36+
37+
3038def test_legacy_tags_keep_legacy_schema_layout_first () -> None :
3139 assert schema_source_paths ("refs/tags/v0.13.6" )[0 ] == (
3240 "schema/schema.unstable.json" ,
@@ -49,8 +57,16 @@ def test_parse_args_can_skip_format(monkeypatch) -> None:
4957
5058
5159def test_codegen_check_is_clean_and_read_only () -> None :
52- output = Path ("src/acp/schema.py" )
53- before = output .read_bytes ()
60+ outputs = (
61+ Path ("src/acp/meta.py" ),
62+ Path ("src/acp/schema.py" ),
63+ Path ("src/acp/experimental/v2/meta.py" ),
64+ Path ("src/acp/experimental/v2/schema.py" ),
65+ )
66+ before = {output : output .read_bytes () for output in outputs }
5467
5568 assert generate_schema (check = True )
56- assert output .read_bytes () == before
69+ assert generate_meta (check = True )
70+ assert generate_schema (check = True , protocol_version = 2 )
71+ assert generate_meta (check = True , protocol_version = 2 )
72+ assert {output : output .read_bytes () for output in outputs } == before
0 commit comments