예제 #1
0
def execute(query):
    return RootNode(
        books=Books(),
        authors=Authors()
    ).serialize(
        children=graphql.parse(query)
    )
예제 #2
0
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': {}
                        }
                    }
                }
            }
        }
    }
예제 #3
0
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 :'("
예제 #4
0
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 :'("
예제 #5
0
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': {}
        }
    }
예제 #6
0
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': {}
        }
    }
예제 #7
0
 def query(self, query):
     return self.ungenerator(self.root_node.query(graphql.parse(query)))