Пример #1
0
    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)
Пример #2
0
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)