1
+ from math import nan
1
2
from typing import Any , List
2
3
3
4
from graphql .error import INVALID
@@ -65,6 +66,10 @@ def returns_no_error_for_null_result():
65
66
result = coerce_value ({"value" : None }, TestScalar )
66
67
assert expect_value (result ) is None
67
68
69
+ def returns_no_error_for_nan_result ():
70
+ result = coerce_value ({"value" : nan }, TestScalar )
71
+ assert expect_value (result ) is nan
72
+
68
73
def returns_an_error_for_undefined_result ():
69
74
error = ValueError ("Some error message" )
70
75
result = coerce_value ({"error" : error }, TestScalar )
@@ -117,10 +122,10 @@ def returns_an_error_for_a_non_dict_value():
117
122
]
118
123
119
124
def returns_an_error_for_an_invalid_field ():
120
- result = coerce_value ({"foo" : "abc" }, TestInputObject )
125
+ result = coerce_value ({"foo" : nan }, TestInputObject )
121
126
assert expect_errors (result ) == [
122
127
"Expected type Int at value.foo."
123
- " Int cannot represent non-integer value: 'abc' "
128
+ " Int cannot represent non-integer value: nan "
124
129
]
125
130
126
131
def returns_multiple_errors_for_multiple_invalid_fields ():
@@ -182,7 +187,11 @@ def describe_for_graphql_input_object_with_default_value():
182
187
def _get_test_input_object (default_value ):
183
188
return GraphQLInputObjectType (
184
189
"TestInputObject" ,
185
- {"foo" : GraphQLInputField (GraphQLInt , default_value = default_value )},
190
+ {
191
+ "foo" : GraphQLInputField (
192
+ GraphQLScalarType ("TestScalar" ), default_value = default_value
193
+ )
194
+ },
186
195
)
187
196
188
197
def returns_no_errors_for_valid_input_value ():
@@ -197,6 +206,12 @@ def returns_null_as_value():
197
206
result = coerce_value ({}, _get_test_input_object (None ))
198
207
assert expect_value (result ) == {"foo" : None }
199
208
209
+ def returns_nan_as_value ():
210
+ result = coerce_value ({}, _get_test_input_object (nan ))
211
+ result_value = expect_value (result )
212
+ assert "foo" in result_value
213
+ assert result_value ["foo" ] is nan
214
+
200
215
def describe_for_graphql_list ():
201
216
TestList = GraphQLList (GraphQLInt )
202
217
0 commit comments