File tree 4 files changed +22
-3
lines changed
4 files changed +22
-3
lines changed Original file line number Diff line number Diff line change 1
1
import datetime
2
2
3
+ from dateutil .parser import isoparse
4
+
3
5
from graphql .error import GraphQLError
4
6
from graphql .language import StringValueNode , print_ast
5
7
@@ -71,7 +73,7 @@ def parse_value(value):
71
73
f"DateTime cannot represent non-string value: { repr (value )} "
72
74
)
73
75
try :
74
- return datetime . datetime . fromisoformat (value )
76
+ return isoparse (value )
75
77
except ValueError :
76
78
raise GraphQLError (f"DateTime cannot represent value: { repr (value )} " )
77
79
Original file line number Diff line number Diff line change @@ -227,6 +227,18 @@ def test_time_query_variable(sample_time):
227
227
assert result .data == {"time" : isoformat }
228
228
229
229
230
+ def test_support_isoformat ():
231
+ isoformat = "2011-11-04T00:05:23Z"
232
+
233
+ # test time variable provided as Python time
234
+ result = schema .execute (
235
+ """query DateTime($time: DateTime){ datetime(in: $time) }""" ,
236
+ variables = {"time" : isoformat },
237
+ )
238
+ assert not result .errors
239
+ assert result .data == {"datetime" : "2011-11-04T00:05:23+00:00" }
240
+
241
+
230
242
def test_bad_variables (sample_date , sample_datetime , sample_time ):
231
243
def _test_bad_variables (type_ , input_ ):
232
244
result = schema .execute (
Original file line number Diff line number Diff line change @@ -53,7 +53,11 @@ def run_tests(self):
53
53
"coveralls>=3.3,<5" ,
54
54
]
55
55
56
- dev_requires = ["ruff==0.5.0" ] + tests_require
56
+ dev_requires = [
57
+ "ruff==0.5.0" ,
58
+ "types-python-dateutil>=2.8.1,<3" ,
59
+ "mypy>=1.10,<2" ,
60
+ ] + tests_require
57
61
58
62
setup (
59
63
name = "graphene" ,
@@ -83,6 +87,7 @@ def run_tests(self):
83
87
install_requires = [
84
88
"graphql-core>=3.1,<3.3" ,
85
89
"graphql-relay>=3.1,<3.3" ,
90
+ "python-dateutil>=2.7.0,<3" ,
86
91
"typing-extensions>=4.7.1,<5" ,
87
92
],
88
93
tests_require = tests_require ,
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ commands =
20
20
[testenv:mypy]
21
21
basepython = python3.10
22
22
deps =
23
- mypy>=1.10,<2
23
+ .[dev]
24
24
commands =
25
25
mypy graphene
26
26
You can’t perform that action at this time.
0 commit comments