def test_visits_edited_node(): added_field = Field(loc=None, name=Name(loc=None, value='__typename'), alias=None, arguments=None, directives=None, selection_set=None) ast = parse('{ a { x } }') class TestVisitor(Visitor): def __init__(self): self.did_visit_added_field = False def enter(self, node, *args): if isinstance(node, Field) and node.name.value == 'a': selection_set = node.selection_set selections = [] if selection_set: selections = selection_set.selections new_selection_set = SelectionSet(loc=None, selections=[added_field] + selections) return Field(loc=None, name=None, alias=None, arguments=None, directives=None, selection_set=new_selection_set) if node is added_field: self.did_visit_added_field = True visitor = TestVisitor() visit(ast, visitor) assert visitor.did_visit_added_field
def test_prints_minimal_ast(): ast = Field(name=Name(loc=None, value='foo'), loc=None, alias=None, arguments=None, directives=None, selection_set=None) assert print_ast(ast) == 'foo'
def enter(self, node, *args): if isinstance(node, Field) and node.name.value == 'a': selection_set = node.selection_set selections = [] if selection_set: selections = selection_set.selections new_selection_set = SelectionSet(selections=[added_field] + selections) return Field(name=None, selection_set=new_selection_set) if node is added_field: self.did_visit_added_field = True
def test_prints_minimal_ast(): ast = Field(name=Name(loc=None, value='foo')) assert print_ast(ast) == 'foo'