Merge pull request #242 from jkimbo/json-custom-scalar-fix

Json custom scalar fix
This commit is contained in:
Syrus Akbary 2016-08-07 09:00:43 -07:00 committed by GitHub
commit 17ba01570a
2 changed files with 16 additions and 3 deletions

View File

@ -16,11 +16,11 @@ class JSONString(Scalar):
@staticmethod @staticmethod
def parse_literal(node): def parse_literal(node):
if isinstance(node, ast.StringValue): if isinstance(node, ast.StringValue):
return json.dumps(node.value) return json.loads(node.value)
@staticmethod @staticmethod
def parse_value(value): def parse_value(value):
return json.dumps(value) return json.loads(value)
class DateTime(Scalar): class DateTime(Scalar):

View File

@ -1,7 +1,7 @@
import iso8601 import iso8601
from graphql.language.ast import StringValue from graphql.language.ast import StringValue
from ..custom_scalars import DateTime from ..custom_scalars import DateTime, JSONString
def test_date_time(): def test_date_time():
@ -24,3 +24,16 @@ def test_date_time():
node = StringValue(test_iso_string) node = StringValue(test_iso_string)
test_dt = DateTime.parse_literal(node) test_dt = DateTime.parse_literal(node)
check_datetime(test_dt) check_datetime(test_dt)
def test_json_string():
test_json_string = '{"foo": "bar"}'
test_object = JSONString().parse_value(test_json_string)
assert test_object == {'foo': 'bar'}
assert JSONString.serialize(test_object) == test_json_string
node = StringValue(test_json_string)
test_object = JSONString.parse_literal(node)
assert test_object == {'foo': 'bar'}