提交 ee5b0e01 编写于 作者: L Lucas Meneghel Rodrigues

Merge branch 'tree_docs_tests' of https://github.com/clebergnu/avocado into...

Merge branch 'tree_docs_tests' of https://github.com/clebergnu/avocado into clebergnu-tree_docs_tests
......@@ -142,6 +142,20 @@ class TreeNode(object):
"""
def __init__(self, name='', value=None, parent=None, children=None):
"""
:param name: a name for this node that will be used to define its
path according to the name of its parents
:type name: str
:param value: a collection of keys and values that will be made into
this node environment.
:type value: dict
:param parent: the node that is directly above this one in the tree
structure
:type parent: :class:`TreeNode`
:param children: the nodes that are directly beneath this one in the
tree structure
:type children: builtin.list
"""
if value is None:
value = {}
if children is None:
......
import unittest
from avocado.core import tree
class TreeNode(unittest.TestCase):
def test_empty(self):
node = tree.TreeNode()
self.assertEqual(node.name, '')
self.assertEqual(node.value, {})
self.assertEqual(node.children, [])
def test_parents_child(self):
child = tree.TreeNode()
parent = tree.TreeNode(children=[child])
self.assertIn(child, parent.children)
def test_childs_parent(self):
child = tree.TreeNode()
parent = tree.TreeNode(children=[child])
self.assertIs(child.parent, parent)
def test_children_order(self):
huey = tree.TreeNode(name='Huey')
dewey = tree.TreeNode(name='Dewey')
louie = tree.TreeNode(name='Louie')
scrooge = tree.TreeNode(name='Scrooge',
children=[huey, dewey, louie])
self.assertIs(scrooge.children[0], huey)
self.assertIs(scrooge.children[1], dewey)
self.assertIs(scrooge.children[2], louie)
def test_eq_name(self):
original = tree.TreeNode(name='same')
clone = tree.TreeNode(name='same')
self.assertEqual(original, clone)
self.assertNotEqual(original,
tree.TreeNode(name='other'))
def test_eq_name_str(self):
original = tree.TreeNode(name='same')
self.assertEqual(original, 'same')
self.assertNotEqual(original, 'other')
def test_eq_children(self):
huey = tree.TreeNode(name='Huey')
dewey = tree.TreeNode(name='Dewey')
louie = tree.TreeNode(name='Louie')
original = tree.TreeNode(children=[huey, dewey, louie])
clone = tree.TreeNode(children=[huey, dewey, louie])
self.assertEqual(original, clone)
self.assertNotEqual(original, tree.TreeNode(children=[huey, dewey]))
def test_eq_value(self):
self.assertEqual(tree.TreeNode(value={'same': 'same'}),
tree.TreeNode(value={'same': 'same'}))
self.assertNotEqual(tree.TreeNode(value={'same': 'same'}),
tree.TreeNode(value={'same': 'other'}))
def test_fingerprint(self):
self.assertEqual(tree.TreeNode("foo").fingerprint(),
"/foo{},{},FilterSet([]),FilterSet([])")
self.assertEqual(tree.TreeNode("bar", value={"key": "val"}).fingerprint(),
"/bar{key: val},{key: /bar},FilterSet([]),FilterSet([])")
def test_is_leaf(self):
self.assertTrue(tree.TreeNode().is_leaf)
self.assertTrue(tree.TreeNode(value={'foo': 'bar'}).is_leaf)
self.assertFalse(tree.TreeNode(children=[tree.TreeNode()]).is_leaf)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册