Skip to content

Commit 90baa48

Browse files
committed
Speed up visitor test on kitchen_sink_query
Replicates graphql/graphql-js@5acd587
1 parent e3c31ac commit 90baa48

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

tests/language/test_visitor.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from copy import copy
22

3-
from pytest import fail
4-
53
from graphql.language import (
64
Node,
75
FieldNode,
@@ -420,22 +418,31 @@ def leave(self, *args):
420418
def visits_kitchen_sink(kitchen_sink_query): # noqa: F811
421419
ast = parse(kitchen_sink_query)
422420
visited = []
421+
record = visited.append
422+
arg_stack = []
423+
push = arg_stack.append
424+
pop = arg_stack.pop
423425

424426
# noinspection PyMethodMayBeStatic
425427
class TestVisitor(Visitor):
426428
def enter(self, *args):
427-
check_visitor_fn_args(ast, *args)
428429
node, key, parent = args[:3]
429430
parent_kind = parent.kind if isinstance(parent, Node) else None
430-
visited.append(["enter", node.kind, key, parent_kind])
431+
record(["enter", node.kind, key, parent_kind])
431432

432-
def leave(self, *args):
433433
check_visitor_fn_args(ast, *args)
434+
push(args[:])
435+
436+
def leave(self, *args):
434437
node, key, parent = args[:3]
435438
parent_kind = parent.kind if isinstance(parent, Node) else None
436-
visited.append(["leave", node.kind, key, parent_kind])
439+
record(["leave", node.kind, key, parent_kind])
440+
441+
assert pop() == args
437442

438443
visit(ast, TestVisitor())
444+
445+
assert arg_stack == []
439446
assert visited == [
440447
["enter", "document", None, None],
441448
["enter", "operation_definition", 0, None],

0 commit comments

Comments
 (0)