def add_obj_ref( tag_element: _Element, obj_ref_el_list: Iterable[_Element], adjacent_element: Optional[_Element], put_after_adjacent: bool = False, ) -> None: """ Add or move obj_ref elements in given tag element. tag_element -- the tag element to be updated with obj_ref elements obj_ref_el_list -- elements to be added or moved in the updated tag adjacent_element -- the element next to which the obj_ref elements will be put put_after_adjacent -- put elements after (True) or before (False) the adjacent element """ if adjacent_element is not None: move_elements( obj_ref_el_list, adjacent_element, put_after_adjacent=put_after_adjacent, ) else: for obj_ref in obj_ref_el_list: tag_element.append(obj_ref)
def test_move_inside_before(self): lib.move_elements([self.third, self.second], self.first) assert_xml_equal( """ <root> <third/> <second/> <first/> </root> """, etree_to_str(self.root), )
def test_move_combined_before(self): lib.move_elements([self.third, self.new2], self.first) assert_xml_equal( """ <root> <third/> <new2/> <first/> <second/> </root> """, etree_to_str(self.root), )
def test_move_into_after(self): lib.move_elements([self.new1], self.second, put_after_adjacent=True) assert_xml_equal( """ <root> <first/> <second/> <new1> <new2/> </new1> <third/> </root> """, etree_to_str(self.root), )
def test_move_inside_after(self): lib.move_elements( [self.third, self.first], self.second, put_after_adjacent=True, ) assert_xml_equal( """ <root> <second/> <third/> <first/> </root> """, etree_to_str(self.root), )