1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
from enum import Enum
from graphql import graphql_sync
from graphql.utilities import print_schema
from apischema import schema
from apischema.graphql import graphql_schema
class MyEnum(Enum):
FOO = "FOO"
BAR = "BAR"
def echo(enum: MyEnum) -> MyEnum:
return enum
schema_ = graphql_schema(
query=[echo], enum_schemas={MyEnum.FOO: schema(description="foo")}
)
schema_str = '''\
type Query {
echo(enum: MyEnum!): MyEnum!
}
enum MyEnum {
"""foo"""
FOO
BAR
}'''
assert print_schema(schema_) == schema_str
assert graphql_sync(schema_, "{echo(enum: FOO)}").data == {"echo": "FOO"}
|