diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:15 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:15 +0300 |
commit | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch) | |
tree | da2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /contrib/tools/cython/Cython/Compiler/Tests/TestTreePath.py | |
parent | 778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff) | |
download | ydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/tools/cython/Cython/Compiler/Tests/TestTreePath.py')
-rw-r--r-- | contrib/tools/cython/Cython/Compiler/Tests/TestTreePath.py | 116 |
1 files changed, 58 insertions, 58 deletions
diff --git a/contrib/tools/cython/Cython/Compiler/Tests/TestTreePath.py b/contrib/tools/cython/Cython/Compiler/Tests/TestTreePath.py index bee53b3d2b..eb8e2389ba 100644 --- a/contrib/tools/cython/Cython/Compiler/Tests/TestTreePath.py +++ b/contrib/tools/cython/Cython/Compiler/Tests/TestTreePath.py @@ -1,94 +1,94 @@ -import unittest -from Cython.Compiler.Visitor import PrintTree -from Cython.TestUtils import TransformTest -from Cython.Compiler.TreePath import find_first, find_all -from Cython.Compiler import Nodes, ExprNodes - -class TestTreePath(TransformTest): - _tree = None - - def _build_tree(self): - if self._tree is None: - self._tree = self.run_pipeline([], u""" - def decorator(fun): # DefNode - return fun # ReturnStatNode, NameNode - @decorator # NameNode - def decorated(): # DefNode - pass - """) - return self._tree - - def test_node_path(self): - t = self._build_tree() +import unittest +from Cython.Compiler.Visitor import PrintTree +from Cython.TestUtils import TransformTest +from Cython.Compiler.TreePath import find_first, find_all +from Cython.Compiler import Nodes, ExprNodes + +class TestTreePath(TransformTest): + _tree = None + + def _build_tree(self): + if self._tree is None: + self._tree = self.run_pipeline([], u""" + def decorator(fun): # DefNode + return fun # ReturnStatNode, NameNode + @decorator # NameNode + def decorated(): # DefNode + pass + """) + return self._tree + + def test_node_path(self): + t = self._build_tree() self.assertEqual(2, len(find_all(t, "//DefNode"))) self.assertEqual(2, len(find_all(t, "//NameNode"))) self.assertEqual(1, len(find_all(t, "//ReturnStatNode"))) self.assertEqual(1, len(find_all(t, "//DefNode//ReturnStatNode"))) - - def test_node_path_star(self): - t = self._build_tree() + + def test_node_path_star(self): + t = self._build_tree() self.assertEqual(10, len(find_all(t, "//*"))) self.assertEqual(8, len(find_all(t, "//DefNode//*"))) self.assertEqual(0, len(find_all(t, "//NameNode//*"))) - - def test_node_path_attribute(self): - t = self._build_tree() + + def test_node_path_attribute(self): + t = self._build_tree() self.assertEqual(2, len(find_all(t, "//NameNode/@name"))) self.assertEqual(['fun', 'decorator'], find_all(t, "//NameNode/@name")) - - def test_node_path_attribute_dotted(self): - t = self._build_tree() + + def test_node_path_attribute_dotted(self): + t = self._build_tree() self.assertEqual(1, len(find_all(t, "//ReturnStatNode/@value.name"))) self.assertEqual(['fun'], find_all(t, "//ReturnStatNode/@value.name")) - - def test_node_path_child(self): - t = self._build_tree() + + def test_node_path_child(self): + t = self._build_tree() self.assertEqual(1, len(find_all(t, "//DefNode/ReturnStatNode/NameNode"))) self.assertEqual(1, len(find_all(t, "//ReturnStatNode/NameNode"))) - - def test_node_path_node_predicate(self): - t = self._build_tree() + + def test_node_path_node_predicate(self): + t = self._build_tree() self.assertEqual(0, len(find_all(t, "//DefNode[.//ForInStatNode]"))) self.assertEqual(2, len(find_all(t, "//DefNode[.//NameNode]"))) self.assertEqual(1, len(find_all(t, "//ReturnStatNode[./NameNode]"))) self.assertEqual(Nodes.ReturnStatNode, type(find_first(t, "//ReturnStatNode[./NameNode]"))) - - def test_node_path_node_predicate_step(self): - t = self._build_tree() + + def test_node_path_node_predicate_step(self): + t = self._build_tree() self.assertEqual(2, len(find_all(t, "//DefNode[.//NameNode]"))) self.assertEqual(8, len(find_all(t, "//DefNode[.//NameNode]//*"))) self.assertEqual(1, len(find_all(t, "//DefNode[.//NameNode]//ReturnStatNode"))) self.assertEqual(Nodes.ReturnStatNode, type(find_first(t, "//DefNode[.//NameNode]//ReturnStatNode"))) - - def test_node_path_attribute_exists(self): - t = self._build_tree() + + def test_node_path_attribute_exists(self): + t = self._build_tree() self.assertEqual(2, len(find_all(t, "//NameNode[@name]"))) self.assertEqual(ExprNodes.NameNode, type(find_first(t, "//NameNode[@name]"))) - - def test_node_path_attribute_exists_not(self): - t = self._build_tree() + + def test_node_path_attribute_exists_not(self): + t = self._build_tree() self.assertEqual(0, len(find_all(t, "//NameNode[not(@name)]"))) self.assertEqual(2, len(find_all(t, "//NameNode[not(@honking)]"))) - - def test_node_path_and(self): - t = self._build_tree() + + def test_node_path_and(self): + t = self._build_tree() self.assertEqual(1, len(find_all(t, "//DefNode[.//ReturnStatNode and .//NameNode]"))) self.assertEqual(0, len(find_all(t, "//NameNode[@honking and @name]"))) self.assertEqual(0, len(find_all(t, "//NameNode[@name and @honking]"))) self.assertEqual(2, len(find_all(t, "//DefNode[.//NameNode[@name] and @name]"))) - - def test_node_path_attribute_string_predicate(self): - t = self._build_tree() + + def test_node_path_attribute_string_predicate(self): + t = self._build_tree() self.assertEqual(1, len(find_all(t, "//NameNode[@name = 'decorator']"))) - - def test_node_path_recursive_predicate(self): - t = self._build_tree() + + def test_node_path_recursive_predicate(self): + t = self._build_tree() self.assertEqual(2, len(find_all(t, "//DefNode[.//NameNode[@name]]"))) self.assertEqual(1, len(find_all(t, "//DefNode[.//NameNode[@name = 'decorator']]"))) self.assertEqual(1, len(find_all(t, "//DefNode[.//ReturnStatNode[./NameNode[@name = 'fun']]/NameNode]"))) - -if __name__ == '__main__': - unittest.main() + +if __name__ == '__main__': + unittest.main() |