@@ -116,6 +116,41 @@ def resolve_pet(self, *args, **kwargs):
116
116
assert result .data == expected , result .data
117
117
118
118
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
+
119
154
def test_should_node (session ):
120
155
setup_fixtures (session )
121
156
0 commit comments