Skip to content

Commit c65fc02

Browse files
committed
Fix issue #43 with getting parse_literal via to_kwargs()
1 parent afa494e commit c65fc02

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/graphql/type/definition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ def to_kwargs(self) -> Dict[str, Any]:
394394
if self.parse_value is GraphQLScalarType.parse_value
395395
else self.parse_value,
396396
parse_literal=None
397-
if getattr(self.parse_literal, "__func__")
397+
if getattr(self.parse_literal, "__func__", None)
398398
is GraphQLScalarType.parse_literal
399399
else self.parse_literal,
400400
)

tests/type/test_definition.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def serialize(value):
6565

6666
scalar = GraphQLScalarType("SomeScalar", serialize)
6767
assert scalar.serialize is serialize
68+
assert scalar.to_kwargs()["serialize"] is serialize
6869

6970
def defines_a_scalar_type_with_a_description():
7071
description = "nice scalar"
@@ -73,9 +74,21 @@ def defines_a_scalar_type_with_a_description():
7374
assert scalar.to_kwargs()["description"] is description
7475

7576
def accepts_a_scalar_type_defining_parse_value_and_parse_literal():
76-
assert GraphQLScalarType(
77-
"SomeScalar", parse_value=lambda: None, parse_literal=lambda: None
77+
def parse_value(_value):
78+
return None
79+
80+
def parse_literal(_value_node, _variables):
81+
return None
82+
83+
scalar = GraphQLScalarType(
84+
"SomeScalar", parse_value=parse_value, parse_literal=parse_literal
7885
)
86+
assert scalar.parse_value is parse_value
87+
assert scalar.parse_literal is parse_literal
88+
89+
kwargs = scalar.to_kwargs()
90+
assert kwargs["parse_value"] is parse_value
91+
assert kwargs["parse_literal"] is parse_literal
7992

8093
def provides_default_methods_if_omitted():
8194
scalar = GraphQLScalarType("Foo")

0 commit comments

Comments
 (0)