def test_widget_base_container_add_child_sets_parent(): fake_parent = BaseContainer(id='id') b_elem = BaseContainer(id='id2') fake_parent.add_child(b_elem) assert b_elem.parent is fake_parent, "BaseContainer.add_child should set the child's parent."
def test_widget_base_container_remove_child_removes_child(): fake_parent = BaseContainer(id='id') b_elem = BaseContainer(id='id2', parent=fake_parent) assert len(fake_parent.children) == 1 and fake_parent.children[0] is b_elem fake_parent.remove_child(b_elem) assert len( fake_parent.children ) == 0, "BaseContainer.remove_child should remove child from BaseContainer.children."
def test_widget_base_container_add_child_adds_child(): fake_parent = BaseContainer(id='id') b_elem = BaseContainer(id='id2') fake_parent.add_child(b_elem) assert len(fake_parent.children) == 1 and fake_parent.children[ 0] is b_elem, 'BaseContainer.add_child should add child to BaseContainer.children.'
def test_widget_base_container_clear_children_removes_all(): container = BaseContainer(id='id') child_1 = BaseElement(id='id', parent=container) child_2 = BaseElement(id='id2', parent=container) assert len(container.children) == 2 container.clear_children() assert len(container.children) == 0
def test_widget_base_container_replace_child_handles_parents(): fake_parent = BaseContainer(id='id') b_elem_1 = BaseElement(id='id1', parent=fake_parent) b_elem_2 = BaseElement(id='id2') fake_parent.replace_child(b_elem_1, b_elem_2) assert b_elem_1.parent is None, "BaseContainer.replace_child() should unset the old child's parent." assert b_elem_2.parent is fake_parent, "BaseContainer.replace_child() should set the new child's parent."
def test_widget_base_container_replace_child_replaces_child(): fake_parent = BaseContainer(id='id') b_elem_1 = BaseElement(id='id1', parent=fake_parent) b_elem_2 = BaseElement(id='id2') fake_parent.replace_child(b_elem_1, b_elem_2) assert len(fake_parent.children) == 1 and fake_parent.children[ 0] is b_elem_2, 'BaseContainer.replace_child() should replace the child in BaseContainer.children.'
def test_widget_base_container_compile_compiles_children(): fake_parent = BaseContainer(id='id') fake_parent.html_tag = 'a' b_elem_1 = BaseElement(id='id1', parent=fake_parent) b_elem_2 = BaseElement(id='id2', parent=fake_parent) b_elem_1.html_tag = 'b' b_elem_2.html_tag = 'c' assert fake_parent.compile( ) == '<a id="id"><b id="id1"></b><c id="id2"></c></a>'
def test_widget_base_container_add_child_dispatches_append(): view_test = FakeDispatchView({ 'name': 'append', 'html': '<x id="id">', 'selector': '#id' }) fake_parent = BaseContainer(id='id') fake_parent.view = view_test b_elem = BaseElement(id='id') b_elem.html_tag = 'x' b_elem.autoclosing = True fake_parent.add_child(b_elem) view_test.verify()
def test_widget_base_container_property_parent_setter_propagates_view(): fake_parent = BaseContainer(id='id') fake_parent.view = 3 b_elem_1 = BaseContainer(id='id2') b_elem_2 = BaseContainer(id='id3', parent=b_elem_1) b_elem_1.parent = fake_parent assert b_elem_1.view == 3, 'BaseContainer.parent should propagate parent view to self.' assert b_elem_2.view == 3, 'BaseContainer.parent should propagate parent view to children.'
def test_widget_base_container_remove_child_dispatches_remove(): view_test = FakeDispatchView({'name': 'remove', 'selector': '#id'}) fake_parent = BaseContainer(id='id') b_elem = BaseElement(id='id') fake_parent.add_child(b_elem) fake_parent.view = view_test fake_parent.remove_child(b_elem) view_test.verify()
def test_widget_base_container_remove_child_unsets_parent(): fake_parent = BaseContainer(id='id') b_elem = BaseContainer(id='id2', parent=fake_parent) assert b_elem.parent is fake_parent fake_parent.remove_child(b_elem) assert b_elem.parent is None, "BaseContainer.remove_child should reset the child's parent to None."
def test_widget_base_container_property_parent_setter(): fake_parent = BaseContainer(id='id') b_elem = BaseContainer(id='id2') b_elem.parent = fake_parent assert b_elem._parent is fake_parent, 'BaseContainer.parent should set the value of internal BaseContainer._parent'
def container(self): return BaseContainer(id='id')