From ee0f9802f7a8ee14eb12c24cf54e4d2181d826c2 Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Sun, 4 Oct 2009 17:31:47 +0200 Subject: [PATCH] PEP-8-ified the decorator names for parse tree assertions, added a test case --- Cython/Compiler/Options.py | 8 ++++---- Cython/TestUtils.py | 14 ++++++-------- tests/errors/tree_assert.pyx | 17 +++++++++++++++++ tests/run/dictcomp.pyx | 10 ++++++---- tests/run/enumerate_T316.pyx | 20 ++++++++++---------- tests/run/for_in_range_T372.pyx | 16 ++++++++-------- tests/run/setcomp.pyx | 6 +++--- 7 files changed, 54 insertions(+), 37 deletions(-) create mode 100644 tests/errors/tree_assert.pyx diff --git a/Cython/Compiler/Options.py b/Cython/Compiler/Options.py index 9d1423d3..99b76485 100644 --- a/Cython/Compiler/Options.py +++ b/Cython/Compiler/Options.py @@ -71,8 +71,8 @@ option_defaults = { 'doctesthack': False, # test support - 'testAssertPathExists' : [], - 'testFailIfPathExists' : [], + 'test_assert_path_exists' : [], + 'test_fail_if_path_exists' : [], } # Override types possibilities above, if needed @@ -85,8 +85,8 @@ for key, val in option_defaults.items(): option_scopes = { # defaults to available everywhere # 'module', 'function', 'class', 'with statement' 'doctesthack' : ('module',), - 'testAssertPathExists' : ('function',), - 'testFailIfPathExists' : ('function',), + 'test_assert_path_exists' : ('function',), + 'test_fail_if_path_exists' : ('function',), } def parse_option_value(name, value): diff --git a/Cython/TestUtils.py b/Cython/TestUtils.py index a25933c8..bdd08a41 100644 --- a/Cython/TestUtils.py +++ b/Cython/TestUtils.py @@ -148,20 +148,18 @@ class TreeAssertVisitor(VisitorTransform): def visit_CompilerDirectivesNode(self, node): directives = node.directives - if 'testAssertPathExists' in directives: - for path in directives['testAssertPathExists']: + if 'test_assert_path_exists' in directives: + for path in directives['test_assert_path_exists']: if TreePath.find_first(node, path) is None: Errors.error( node.pos, - "Expected path '%s' not found in result tree of node %r" % ( - path, node.body)) - if 'testFailIfPathExists' in directives: - for path in directives['testFailIfPathExists']: + "Expected path '%s' not found in result tree" % path) + if 'test_fail_if_path_exists' in directives: + for path in directives['test_fail_if_path_exists']: if TreePath.find_first(node, path) is not None: Errors.error( node.pos, - "Unexpected path '%s' found in result tree of node %r" % ( - path, node.body)) + "Unexpected path '%s' found in result tree" % path) self.visitchildren(node) return node diff --git a/tests/errors/tree_assert.pyx b/tests/errors/tree_assert.pyx new file mode 100644 index 00000000..ef931b98 --- /dev/null +++ b/tests/errors/tree_assert.pyx @@ -0,0 +1,17 @@ + +cimport cython + +@cython.test_fail_if_path_exists("//SimpleCallNode", + "//NameNode") +@cython.test_assert_path_exists("//ComprehensionNode", + "//ComprehensionNode//FuncDefNode") +def test(): + object() + + +_ERRORS = u""" +8:0: Expected path '//ComprehensionNode' not found in result tree +8:0: Expected path '//ComprehensionNode//FuncDefNode' not found in result tree +8:0: Unexpected path '//NameNode' found in result tree +8:0: Unexpected path '//SimpleCallNode' found in result tree +""" diff --git a/tests/run/dictcomp.pyx b/tests/run/dictcomp.pyx index b874163e..02a2cbfe 100644 --- a/tests/run/dictcomp.pyx +++ b/tests/run/dictcomp.pyx @@ -22,10 +22,12 @@ def smoketest_dict(): for x in range(5) if x % 2 == 0 } -@cython.testFailIfPathExists("//ComprehensionNode//ComprehensionAppendNode", - "//SimpleCallNode//ComprehensionNode") -@cython.testAssertPathExists("//ComprehensionNode", - "//ComprehensionNode//DictComprehensionAppendNode") +@cython.test_fail_if_path_exists( + "//ComprehensionNode//ComprehensionAppendNode", + "//SimpleCallNode//ComprehensionNode") +@cython.test_assert_path_exists( + "//ComprehensionNode", + "//ComprehensionNode//DictComprehensionAppendNode") def smoketest_list(): return dict([ (x+2,x*2) for x in range(5) diff --git a/tests/run/enumerate_T316.pyx b/tests/run/enumerate_T316.pyx index 3380ccad..899adb9a 100644 --- a/tests/run/enumerate_T316.pyx +++ b/tests/run/enumerate_T316.pyx @@ -65,24 +65,24 @@ __doc__ = u""" cimport cython -@cython.testFailIfPathExists("//SimpleCallNode//NameNode[@name = 'enumerate']") +@cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']") def go_py_enumerate(): for i,k in enumerate(range(1,5)): print i, k -@cython.testFailIfPathExists("//SimpleCallNode//NameNode[@name = 'enumerate']") +@cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']") def go_c_enumerate(): cdef int i,k for i,k in enumerate(range(1,5)): print i, k -@cython.testFailIfPathExists("//SimpleCallNode//NameNode[@name = 'enumerate']") +@cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']") def go_c_enumerate_step(): cdef int i,k for i,k in enumerate(range(1,7,2)): print i, k -@cython.testFailIfPathExists("//SimpleCallNode//NameNode[@name = 'enumerate']") +@cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']") def py_enumerate_dict(dict d): cdef int i = 55 k = 99 @@ -90,7 +90,7 @@ def py_enumerate_dict(dict d): print i, k print u"::", i, k -@cython.testFailIfPathExists("//SimpleCallNode") +@cython.test_fail_if_path_exists("//SimpleCallNode") def py_enumerate_break(*t): i,k = 55,99 for i,k in enumerate(t): @@ -98,7 +98,7 @@ def py_enumerate_break(*t): break print u"::", i, k -@cython.testFailIfPathExists("//SimpleCallNode") +@cython.test_fail_if_path_exists("//SimpleCallNode") def py_enumerate_return(*t): i,k = 55,99 for i,k in enumerate(t): @@ -106,7 +106,7 @@ def py_enumerate_return(*t): return print u"::", i, k -@cython.testFailIfPathExists("//SimpleCallNode") +@cython.test_fail_if_path_exists("//SimpleCallNode") def py_enumerate_continue(*t): i,k = 55,99 for i,k in enumerate(t): @@ -114,7 +114,7 @@ def py_enumerate_continue(*t): continue print u"::", i, k -@cython.testFailIfPathExists("//SimpleCallNode//NameNode[@name = 'enumerate']") +@cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']") def empty_c_enumerate(): cdef int i = 55, k = 99 for i,k in enumerate(range(0)): @@ -126,12 +126,12 @@ def single_target_enumerate(): for t in enumerate(range(1,5)): print t[0], t[1] -@cython.testFailIfPathExists("//SimpleCallNode//NameNode[@name = 'enumerate']") +@cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']") def multi_enumerate(): for a,(b,(c,d)) in enumerate(enumerate(enumerate(range(1,5)))): print a,b,c,d -@cython.testFailIfPathExists("//SimpleCallNode") +@cython.test_fail_if_path_exists("//SimpleCallNode") def multi_c_enumerate(): cdef int a,b,c,d for a,(b,(c,d)) in enumerate(enumerate(enumerate(range(1,5)))): diff --git a/tests/run/for_in_range_T372.pyx b/tests/run/for_in_range_T372.pyx index 91c60bf4..ce2a92d4 100644 --- a/tests/run/for_in_range_T372.pyx +++ b/tests/run/for_in_range_T372.pyx @@ -15,8 +15,8 @@ __doc__ = u""" cimport cython -@cython.testAssertPathExists("//ForFromStatNode") -@cython.testFailIfPathExists("//ForInStatNode") +@cython.test_assert_path_exists("//ForFromStatNode") +@cython.test_fail_if_path_exists("//ForInStatNode") def test_modify(): cdef int i, n = 5 for i in range(n): @@ -25,8 +25,8 @@ def test_modify(): print return i,n -@cython.testAssertPathExists("//ForFromStatNode") -@cython.testFailIfPathExists("//ForInStatNode") +@cython.test_assert_path_exists("//ForFromStatNode") +@cython.test_fail_if_path_exists("//ForInStatNode") def test_fix(): cdef int i for i in range(5): @@ -34,8 +34,8 @@ def test_fix(): print return i -@cython.testAssertPathExists("//ForFromStatNode") -@cython.testFailIfPathExists("//ForInStatNode") +@cython.test_assert_path_exists("//ForFromStatNode") +@cython.test_fail_if_path_exists("//ForInStatNode") def test_break(): cdef int i, n = 5 for i in range(n): @@ -46,8 +46,8 @@ def test_break(): print return i,n -@cython.testAssertPathExists("//ForFromStatNode") -@cython.testFailIfPathExists("//ForInStatNode") +@cython.test_assert_path_exists("//ForFromStatNode") +@cython.test_fail_if_path_exists("//ForInStatNode") def test_return(): cdef int i, n = 5 for i in range(n): diff --git a/tests/run/setcomp.pyx b/tests/run/setcomp.pyx index 90668620..38398c10 100644 --- a/tests/run/setcomp.pyx +++ b/tests/run/setcomp.pyx @@ -27,9 +27,9 @@ def smoketest_set(): for x in range(5) if x % 2 == 0 } -@cython.testFailIfPathExists("//SimpleCallNode//ComprehensionNode") -@cython.testAssertPathExists("//ComprehensionNode", - "//ComprehensionNode//ComprehensionAppendNode") +@cython.test_fail_if_path_exists("//SimpleCallNode//ComprehensionNode") +@cython.test_assert_path_exists("//ComprehensionNode", + "//ComprehensionNode//ComprehensionAppendNode") def smoketest_list(): return set([ x*2 for x in range(5) -- 2.26.2