def test_replace_child(self): individual_name = Node(names.INDIVIDUALNAME) sur_name_1 = Node(names.SURNAME, parent=individual_name) sur_name_1.content = 'Gaucho' individual_name.add_child(sur_name_1) sur_name_2 = Node(names.SURNAME, parent=individual_name) sur_name_2.content = 'Carroll' self.assertIn(sur_name_1, individual_name.children) self.assertNotIn(sur_name_2, individual_name.children) individual_name.replace_child(old_child=sur_name_1, new_child=sur_name_2) self.assertIn(sur_name_2, individual_name.children) self.assertNotIn(sur_name_1, individual_name.children) # Test for old child removal from node store self.assertNotIn(sur_name_1.id, Node.store) # Test for child node type mismatch given_name = Node(names.GIVENNAME) given_name.content = 'Chase' try: individual_name.replace_child(old_child=sur_name_2, new_child=given_name) except ValueError as e: self.assertIsNotNone(e)
def test_replace_child(): individual_name = Node(names.INDIVIDUALNAME) sur_name_1 = Node(names.SURNAME, parent=individual_name) sur_name_1.content = "Gaucho" individual_name.add_child(sur_name_1) sur_name_2 = Node(names.SURNAME, parent=individual_name) sur_name_2.content = "Carroll" assert sur_name_1 in individual_name.children assert sur_name_2 not in individual_name.children individual_name.replace_child(old_child=sur_name_1, new_child=sur_name_2) assert sur_name_2 in individual_name.children assert sur_name_1 not in individual_name.children # Test for old child removal from node store assert sur_name_1.id not in Node.store # Test for child node type mismatch given_name = Node(names.GIVENNAME) given_name.content = "Chase" with pytest.raises(ValueError): individual_name.replace_child(old_child=sur_name_2, new_child=given_name)