File tree Expand file tree Collapse file tree 2 files changed +31
-2
lines changed Expand file tree Collapse file tree 2 files changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -45,8 +45,11 @@ def serialize(self, value):
45
45
# Try and get enum by value
46
46
value = enum (value )
47
47
except ValueError :
48
- # Try ang get enum by name
49
- value = enum [value ]
48
+ # Try and get enum by name
49
+ try :
50
+ value = enum [value ]
51
+ except KeyError :
52
+ value = None
50
53
return super (GrapheneEnumType , self ).serialize (value )
51
54
52
55
Original file line number Diff line number Diff line change @@ -321,6 +321,32 @@ def resolve_color_by_name(_, info):
321
321
assert results .data ["colorByName" ] == Color .RED .name
322
322
323
323
324
+ def test_enum_resolver_invalid ():
325
+ from enum import Enum as PyEnum
326
+
327
+ class Color (PyEnum ):
328
+ RED = 1
329
+ GREEN = 2
330
+ BLUE = 3
331
+
332
+ GColor = Enum .from_enum (Color )
333
+
334
+ class Query (ObjectType ):
335
+ color = GColor (required = True )
336
+
337
+ def resolve_color (_ , info ):
338
+ return "BLACK"
339
+
340
+ schema = Schema (query = Query )
341
+
342
+ results = schema .execute ("query { color }" )
343
+ assert results .errors
344
+ assert (
345
+ results .errors [0 ].message
346
+ == "Expected a value of type 'Color' but received: 'BLACK'"
347
+ )
348
+
349
+
324
350
def test_enum_mutation ():
325
351
from enum import Enum as PyEnum
326
352
You can’t perform that action at this time.
0 commit comments