def execute(query): return RootNode( books=Books(), authors=Authors() ).serialize( children=graphql.parse(query) )
def test_parser(): query = """ __schema { aName queryType (id: -23, a: "asd\\"s", alex: false, coco: null) { name } } """ result = graphql.parse(query) assert result == { '__schema': { 'parameters': {}, 'children': { 'aName': { 'parameters': {}, 'children': {}, }, 'queryType': { 'parameters': { 'id': -23, 'a': 'asd"s', 'alex': False, 'coco': None, }, 'children': { 'name': { 'parameters': {}, 'children': {} } } } } } }
def test_parser_with_another_lexic_error(): query = """ tasks { code name steps { name time } """ try: graphql.parse(query) except LexicalError as e: assert e.value == '}' assert e.line == 8 assert e.column == 14 assert str(e) == 'Unexpected EOF while parsing "}" at 8:14' else: assert False, "No LexicalError found :'("
def test_parser_with_lexic_error(): query = """ tasks {{ code name steps { name time } } """ try: graphql.parse(query) except LexicalError as e: assert e.value == '{' assert e.line == 2 assert e.column == 16 assert str(e) == 'Unexpected "{" expecting NAME at 2:16' else: assert False, "No LexicalError found :'("
def test_parser_with_list_as_parameter_value(): query = r"""coco (param1: ["a", "X", {x: [1, 2]}] ) """ result = graphql.parse(query) assert result == { 'coco': { 'parameters': { 'param1': ['a', 'X', { 'x': [1, 2] }] }, 'children': {} } }
def test_parser_with_dict_as_parameter_value(): query = """coco (param1: {a: "X", x: [1, 2]} ) """ result = graphql.parse(query) assert result == { 'coco': { 'parameters': { 'param1': { 'a': 'X', 'x': [1, 2], } }, 'children': {} } }
def query(self, query): return self.ungenerator(self.root_node.query(graphql.parse(query)))