def test_responsible_party_with_role(): personnel = Node(names.PERSONNEL) personnel.add_attribute("id", "personnel") personnel.add_namespace("eml", "https://eml.ecoinformatics.org/eml-2.2.0") individual_name = Node(names.INDIVIDUALNAME) personnel.add_child(individual_name) given_name = Node(names.GIVENNAME, content="Chase") given_name.add_attribute("lang", "Spanish") individual_name.add_child(given_name) sur_name = Node(names.SURNAME, content="Gaucho") sur_name.add_attribute("lang", "Spanish") individual_name.add_child(sur_name) individual_name = Node(names.INDIVIDUALNAME) personnel.add_child(individual_name) given_name = Node(names.GIVENNAME, content="Cactus") individual_name.add_child(given_name) sur_name = Node(names.SURNAME, content="Jack") individual_name.add_child(sur_name) phone = Node(names.PHONE, content="999-999-9999") personnel.add_child(phone) errs = [] # Without role, should get an error with pytest.raises(MetapypeRuleError): validate.tree(personnel) # Error should name 'role' as the cause validate.tree(personnel, errs) for err_code, msg, node, *args in errs: err_cause, min = args assert err_cause == 'role' # With role, it should be ok role = Node(names.ROLE, content="drummer") personnel.add_child(role) validate.tree(personnel, errs)
def test_responsible_party(): creator = Node(names.CREATOR) creator.add_attribute("id", "creator") creator.add_namespace("eml", "https://eml.ecoinformatics.org/eml-2.2.0") individual_name = Node(names.INDIVIDUALNAME) creator.add_child(individual_name) given_name = Node(names.GIVENNAME, content="Chase") given_name.add_attribute("lang", "Spanish") individual_name.add_child(given_name) sur_name = Node(names.SURNAME, content="Gaucho") sur_name.add_attribute("lang", "Spanish") individual_name.add_child(sur_name) individual_name = Node(names.INDIVIDUALNAME) creator.add_child(individual_name) given_name = Node(names.GIVENNAME, content="Cactus") individual_name.add_child(given_name) sur_name = Node(names.SURNAME, content="Jack") individual_name.add_child(sur_name) phone = Node(names.PHONE, content="999-999-9999") creator.add_child(phone) validate.tree(creator)
def test_copy(): creator = Node(names.CREATOR) creator.add_attribute("id", "creator") creator.add_namespace("eml", "https://eml.ecoinformatics.org/eml-2.2.0") individual_name = Node(names.INDIVIDUALNAME) creator.add_child(individual_name) given_name = Node(names.GIVENNAME, content="Chase") given_name.add_attribute("lang", "Spanish") individual_name.add_child(given_name) sur_name = Node(names.SURNAME, content="Gaucho") sur_name.add_attribute("lang", "Spanish") individual_name.add_child(sur_name) individual_name = Node(names.INDIVIDUALNAME) creator.add_child(individual_name) given_name = Node(names.GIVENNAME, content="Cactus") individual_name.add_child(given_name) sur_name = Node(names.SURNAME, content="Jack") individual_name.add_child(sur_name) validate.tree(creator) creator_copy = creator.copy() validate.tree(creator_copy) assert is_deep_copy(creator, creator_copy)