Skip to content

Commit 98733fb

Browse files
committed
Add a test for enum parameters as well
1 parent 740fc9d commit 98733fb

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

graphene_sqlalchemy/tests/test_query.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,41 @@ def resolve_pet(self, *args, **kwargs):
116116
assert result.data == expected, result.data
117117

118118

119+
def test_enum_parameter(session):
120+
setup_fixtures(session)
121+
122+
class PetType(SQLAlchemyObjectType):
123+
class Meta:
124+
model = Pet
125+
126+
class Query(graphene.ObjectType):
127+
pet = graphene.Field(PetType, kind=graphene.Argument(PetType._meta.fields['pet_kind'].type.of_type))
128+
129+
def resolve_pet(self, info, kind=None, *args, **kwargs):
130+
query = session.query(Pet)
131+
if kind:
132+
query = query.filter(Pet.pet_kind == kind)
133+
return query.first()
134+
135+
query = """
136+
query PetQuery($kind: pet_kind) {
137+
pet(kind: $kind) {
138+
name,
139+
petKind
140+
hairKind
141+
}
142+
}
143+
"""
144+
expected = {"pet": {"name": "Lassie", "petKind": "dog", "hairKind": "LONG"}}
145+
schema = graphene.Schema(query=Query)
146+
result = schema.execute(query, variables={"kind": "cat"})
147+
assert not result.errors
148+
assert result.data == {"pet": None}
149+
result = schema.execute(query, variables={"kind": "dog"})
150+
assert not result.errors
151+
assert result.data == expected, result.data
152+
153+
119154
def test_should_node(session):
120155
setup_fixtures(session)
121156

0 commit comments

Comments
 (0)