Пример #1
0
def test_shadow_clone_no_children():
    t = N("R", "R", SN("A1"), SN("A2"), SN("A3"))
    st = ShadowNode.convert(t)
    stc = st.clone(False)
    assert st.id == stc.id
    assert st.value == stc.value
    assert len(stc.children) == 0
Пример #2
0
def test_shadow_add():
    t = N("R", "R", SN("A1"), SN("A2"), SN("A3"))
    st = ShadowNode.convert(t)
    st.add(SN("B1a"), 1)
    assert st.allchildren == st.children
    st.add(SN("B2a"), -1)
    assert st.allchildren == st.children
Пример #3
0
def test_shadow_delete_add_end():
    t = N("R", "R", SN("A1"), SN("A2"), SN("A3"))
    st = ShadowNode.convert(t)
    st.remove(len(st.children) - 1)
    st.add(SN("B1"), -1)
    assert st.children == [SN("A1"), SN("A2"), SN("B1")]
    assert st.allchildren == [SN("A1"), SN("A2"), SN("A3"), SN("B1")]
Пример #4
0
def test_shadow_update():
    t = N("R", "R", SN("A1"), SN("A2"), SN("A3"))
    st = ShadowNode.convert(t)
    st[2].value = "Ax"
    assert st[2].value == "Ax"
    assert st.children == [SN("A1"), SN("A2"), N("A3", "Ax")]
    assert st.allchildren == [SN("A1"), SN("A2"), N("A3", "Ax")]
    assert [x.status for x in st.allchildren] == [[], [], ['updated']]
Пример #5
0
def test_shadow_del_del():
    t = N("R", "R", SN("A1"), SN("A2"), SN("A3"))
    st = ShadowNode.convert(t)
    st.remove(0)
    st.remove(0)
    st.add(SN("B1"), 0)
    assert st.children == [SN("B1"), SN("A3")]
    assert st.allchildren == [SN("A1"), SN("A2"), SN("B1"), SN("A3")]
    st.remove(0)
    assert st.children == [SN("A3")]
    assert st.allchildren == [SN("A1"), SN("A2"), SN("B1"), SN("A3")]
    assert [x.status for x in st.allchildren] == [['deleted'], ['deleted'],
                                                  ['inserted', 'deleted'], []]
Пример #6
0
def test_shadow_delete_add_begin():
    t = N("R", "R", SN("A1"), SN("A2"), SN("A3"))
    st = ShadowNode.convert(t)
    st.remove(0)
    st.add(SN("B1"), 0)
    assert st.children == [SN("B1"), SN("A2"), SN("A3")]
    assert st.allchildren == [SN("A1"), SN("B1"), SN("A2"), SN("A3")]
    st.add(SN("B2"), 1)
    assert st.children == [SN("B1"), SN("B2"), SN("A2"), SN("A3")]
    assert st.allchildren == [SN("A1"), SN("B1"), SN("B2"), SN("A2"), SN("A3")]
    st.remove(2)
    st.add(SN("B3"), 2)
    assert st.children == [SN("B1"), SN("B2"), SN("B3"), SN("A3")]
    assert st.allchildren == [
        SN("A1"), SN("B1"),
        SN("B2"), SN("A2"),
        SN("B3"), SN("A3")
    ]
Пример #7
0
def test_shadow_clone():
    t = N("R", "R", SN("A1"), SN("A2"), SN("A3"))
    st = ShadowNode.convert(t)
    stc = st.clone(True)
    assertTreeEqual(st, stc)