Skip to content

Commit 3cc595a

Browse files
fregataaclaude
andcommitted
test(BA-5119): add enum sync guard for ContainerRegistryTypeGQL
Ensures ContainerRegistryTypeGQL stays in sync with the internal ContainerRegistryType enum to catch drift early. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4c31fa1 commit 3cc595a

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
"""Sync guard: ContainerRegistryTypeGQL must cover all ContainerRegistryType members.
2+
3+
Prevents enum drift between the internal ContainerRegistryType and its GraphQL
4+
mirror from silently reaching production as a runtime ValueError.
5+
"""
6+
7+
from __future__ import annotations
8+
9+
from ai.backend.common.container_registry import ContainerRegistryType
10+
from ai.backend.manager.api.gql.container_registry.types import ContainerRegistryTypeGQL
11+
12+
13+
class TestContainerRegistryTypeEnumSync:
14+
def test_gql_enum_covers_all_internal_members(self) -> None:
15+
internal_values = {member.value for member in ContainerRegistryType}
16+
gql_values = {member.value for member in ContainerRegistryTypeGQL}
17+
missing = internal_values - gql_values
18+
assert not missing, (
19+
f"ContainerRegistryTypeGQL is missing members present in ContainerRegistryType: {missing}. "
20+
f"Add them to ContainerRegistryTypeGQL to keep the enums in sync."
21+
)
22+
23+
def test_from_enum_roundtrip_for_all_members(self) -> None:
24+
for member in ContainerRegistryType:
25+
gql_member = ContainerRegistryTypeGQL.from_enum(member)
26+
assert gql_member.value == member.value

0 commit comments

Comments
 (0)