예제 #1
0
def test_erase_removes_node_from_the_tree_and_clears_its_parent():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    n.erase("Bar")
    assert_raises(RuntimeError, n.find_relative, "Bar")
    assert_is_none(s.parent)
예제 #2
0
def test_node_is_looked_up_by_its_path():
    root = Node("foo")
    s = Node("Dig")
    root.insert(Node("bar").insert(Node("baz").insert(s)))
    assert_equal(s, root.find(s.path))
예제 #3
0
def test_lookup_by_path():
    root = Node("foo")
    root.insert(Node("bar").insert(Node("baz").insert(Node("Dig"))))
    assert_equal("Dig", root.find("foo.bar.baz.Dig").name)
예제 #4
0
def test_insertion_returns_self():
    n = Node("n")
    assert_equal(n, n.insert(Node("S")))
예제 #5
0
def test_reparanting_of_symbol_trows():
    n = Node("foo")
    s = Node("Baz")
    n.insert(s)
    a = Node("bar")
    assert_raises(RuntimeError, a.insert, s)
예제 #6
0
def test_get_with_default_returns_default_if_not_found():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    assert_is_none(n.get("foo.Baz", None))
예제 #7
0
def test_get_with_default_returns_value_if_found():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    assert_equal(s, n.get("foo.Bar", None))
예제 #8
0
def test_insertion_of_symbol_with_duplicate_name_trows():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    assert_raises(SymbolRedefinition, n.insert, Node("Bar"))
예제 #9
0
def test_lookup_of_nonexistent_symbol_throws():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    assert_raises(RuntimeError, n.find, "baz")
예제 #10
0
def test_insertion_works_with_lookup():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    assert_equal("Bar", n.find("foo.Bar").name)
예제 #11
0
def test_find_child_returns_child_if_found():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    assert_equal("Bar", n.find_relative("Bar").name)
예제 #12
0
def test_insertion_returns_parent_node():
    n = Node("foo")
    assert_equal(n, n.insert(Node("Bar")))
예제 #13
0
def test_path_contains_fully_path_with():
    root = Node("foo")
    s = Node("Dig")
    root.insert(Node("bar").insert(Node("baz").insert(s)))
    assert_equal("foo.bar.baz.Dig", s.path)
예제 #14
0
def test_children_returns_children():
    n = Node("foo")
    s = Node("Bar")
    n.insert(s)
    assert_equal([s], n.children)