Skip to content

Commit 901cbc2

Browse files
Replace brittle python codegen symbol test
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 4aa1f83 commit 901cbc2

1 file changed

Lines changed: 25 additions & 7 deletions

File tree

python/test_codegen_type_names.py

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
1+
import re
2+
import types
3+
14
from copilot.generated import rpc
25

36

4-
def test_python_codegen_does_not_export_quicktype_synthetic_permission_approval_name():
5-
assert not hasattr(rpc, "PermissionDecisionApproveForIonApproval")
6-
assert "PermissionDecisionApproveForIonApproval" not in rpc.__all__
7+
def test_permission_approval_exports_are_union_aliases():
8+
approval_exports = [
9+
name
10+
for name in rpc.__all__
11+
if re.fullmatch(r"PermissionDecisionApproveFor.*Approval", name)
12+
]
13+
assert approval_exports
14+
15+
for name in approval_exports:
16+
exported = getattr(rpc, name)
17+
assert isinstance(exported, types.UnionType), (
18+
f"{name} must be a union alias, not a synthetic dataclass"
19+
)
20+
21+
22+
def test_permission_approval_union_loaders_deserialize_expected_variants():
23+
session = rpc._load_PermissionDecisionApproveForSessionApproval(
24+
{"kind": "commands", "commandIdentifiers": ["git status"]}
25+
)
26+
location = rpc._load_PermissionDecisionApproveForLocationApproval({"kind": "read"})
727

8-
assert hasattr(rpc, "PermissionDecisionApproveForSessionApproval")
9-
assert hasattr(rpc, "PermissionDecisionApproveForLocationApproval")
10-
assert "PermissionDecisionApproveForSessionApproval" in rpc.__all__
11-
assert "PermissionDecisionApproveForLocationApproval" in rpc.__all__
28+
assert isinstance(session, rpc.PermissionDecisionApproveForSessionApprovalCommands)
29+
assert isinstance(location, rpc.PermissionDecisionApproveForLocationApprovalRead)

0 commit comments

Comments
 (0)