@@ -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+
119154def test_should_node (session ):
120155 setup_fixtures (session )
121156
0 commit comments