Ejemplo n.º 1
0
    def test_dirty_node_removing_itself_updates_parent_flag(self):
        node = BaseNode('node')
        child1 = BaseNode('child 1')
        child2 = BaseNode('child 2')
        node.add_child(child1)
        node.add_child(child2)
        node.sync = True
        child1.sync = True
        child2.sync = False

        assert node.dirty
        child2.remove_itself()
        assert not node.dirty
Ejemplo n.º 2
0
    def test_rm_dirty_child_updates_parent_flag(self):
        node = BaseNode('node')
        child1 = BaseNode('child 1')
        child2 = BaseNode('child 2')
        node.add_child(child1)
        node.add_child(child2)
        node.sync = True
        child1.sync = True
        child2.sync = False

        assert node.dirty
        node.rm_child(child2)
        assert not node.dirty
Ejemplo n.º 3
0
    def test_set_node_not_sync(self):
        node = BaseNode('node')
        node._dirty = False
        node._sync = True

        node.sync = False
        assert node.dirty
        assert not node.sync
Ejemplo n.º 4
0
    def test_set_node_with_clean_children_sync(self):
        node = BaseNode('node')
        node.add_child(BaseNode('child 1'))
        node.add_child(BaseNode('child 2'))
        for child in node.children.values():
            child._dirty = False
            child._sync = True

        node.sync = True
        assert not node.dirty
        assert node.sync
Ejemplo n.º 5
0
    def set_node_with_dirty_children_sync(self):
        node = BaseNode('node')
        node.add_child(BaseNode('child 1'))
        node.add_child(BaseNode('child 2'))
        node.children['child 1']._dirty = True
        node.children['child 1']._sync = True

        assert node.dirty
        assert not node.sync
        node.sync = True
        assert node.dirty
        assert node.sync
Ejemplo n.º 6
0
    def test_set_node_with_parent_as_not_sync(self):
        root = BaseNode('root')
        node = BaseNode('node')
        root.add_child(node)
        for n in (root, node):
            n._dirty = False
            n._sync = True

        node.sync = False
        assert not node.sync
        assert node.dirty
        assert root.sync
        assert root.dirty
Ejemplo n.º 7
0
def _make_tree(node_def, default_sync=False):
    """Quick helper to generate a BaseNode hierarchy.

    Args:
        Tuple[str, List[Tuple], bool]: node definition, of the form:
            ('node name', [children definitions], sync). Both part 2 and 3
            of the tuple are optional.
        default_sync (bool, optional): default value to set the 'sync' flag
    Returns:
        BaseNode: node built from the definition.
    """
    name = node_def[0]
    children = node_def[1] if len(node_def) > 1 else []
    sync_flag = node_def[2] if len(node_def) > 2 else default_sync
    node = BaseNode(name)
    node.sync = sync_flag
    for child_def in children:
        node.add_child(_make_tree(child_def, default_sync))
    return node
Ejemplo n.º 8
0
    def test_set_empty_node_sync(self):
        node = BaseNode('node')

        node.sync = True
        assert not node.dirty
        assert node.sync