Skip to content

Commit 567ef58

Browse files
committed
GraphQLScalarType: default 'parse_literal' should handle variables
Replicates graphql/graphql-js@e3727fc
1 parent 493ffd5 commit 567ef58

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/graphql/type/definition.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,14 +406,14 @@ def parse_value(value: Any) -> Any:
406406
return value
407407

408408
def parse_literal(
409-
self, node: ValueNode, _variables: Optional[Dict[str, Any]] = None
409+
self, node: ValueNode, variables: Optional[Dict[str, Any]] = None
410410
) -> Any:
411411
"""Parses an externally provided literal value to use as an input.
412412
413413
This default method uses the parse_value method and should be replaced
414414
with a more specific version when creating a scalar type.
415415
"""
416-
return self.parse_value(value_from_ast_untyped(node))
416+
return self.parse_value(value_from_ast_untyped(node, variables))
417417

418418
def to_kwargs(self) -> Dict[str, Any]:
419419
return dict(

tests/type/test_definition.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ def use_parse_value_for_parsing_literals_if_parse_literal_omitted():
140140
scalar.parse_literal(parse_value('{foo: "bar"}'))
141141
== "parse_value: {'foo': 'bar'}"
142142
)
143+
assert (
144+
scalar.parse_literal(parse_value("{foo: { bar: $var } }"), {"var": "baz"})
145+
== "parse_value: {'foo': {'bar': 'baz'}}"
146+
)
143147

144148
def accepts_a_scalar_type_with_ast_node_and_extension_ast_nodes():
145149
ast_node = ScalarTypeDefinitionNode()

0 commit comments

Comments
 (0)