Exemple #1
0
 def test_get_rule(self):
     r = rule.get_rule(names.ACCESS)
     self.assertEquals(r.name, rule.RULE_ACCESS)
     self.assertEquals(type(r.attributes), type(dict()))
     self.assertEquals(type(r.children), type(list()))
     self.assertEquals(type(r.content_rules), type(list()))
     self.assertEquals(type(r.content_enum), type(list()))
Exemple #2
0
 def test_child_insert_index(self):
     eml = Node(names.EML)
     access = Node(names.ACCESS, parent=eml)
     eml.add_child(access)
     additional_metadata = Node(names.ADDITIONALMETADATA, parent=eml)
     eml.add_child(additional_metadata)
     r = rule.get_rule(names.EML)
     dataset = Node(names.DATASET, parent=eml)
     index = r.child_insert_index(eml, dataset)
     eml.add_child(dataset, index=index)
     self.assertIsInstance(index, int)
Exemple #3
0
def create_node(node_name=''):
    node = None
    node_names = rule.node_names()
    required = True
    if node_name == '':
        node_name = read_text_with_choices(
            "Which type of EML node would you like to work on?: ", required,
            node_names)
    if node_name in rule.node_mappings:
        node = Node(node_name)
        node_rule = rule.get_rule(node_name)
        print(f"Building a {node_name} node using rule {node_rule.name}.")
        edit_attributes(node, node_rule)
        edit_content(node, node_rule)
        edit_children(node, node_rule)
    else:
        print(f"Sorry, I don't know about a {node_name} node.")
    return node
Exemple #4
0
def node(node: Node) -> None:
    '''
    Validates a given node for rule compliance.

    Args:
        node: Node instance to be validated

    Returns:
        None

    Raises:
        MetapypeRuleError: An unknown type of node for EML 2.1.1
    '''
    if node.name not in rule.node_mappings:
        msg = 'Unknown node: {}'.format(node.name)
        raise MetapypeRuleError(msg)
    else:
        node_rule = rule.get_rule(node.name)
        node_rule.validate_rule(node)
Exemple #5
0
 def test_is_allowed_child(self):
     r = rule.get_rule(names.EML)
     allowed = r.is_allowed_child(names.ACCESS)
     self.assertTrue(allowed)
     allowed = r.is_allowed_child(names.INDIVIDUALNAME)
     self.assertFalse(allowed)
Exemple #6
0
 def test_str_content(self):
     self.permission_allow.content = 1
     r = rule.get_rule(names.PERMISSION)
     self.assertRaises(MetapypeRuleError, r.validate_rule,
                       self.permission_allow)
Exemple #7
0
 def test_non_empty_content(self):
     self.principal_allow.content = None
     r = rule.get_rule(names.PRINCIPAL)
     self.assertRaises(MetapypeRuleError, r.validate_rule,
                       self.principal_allow)
Exemple #8
0
 def test_empty_content(self):
     self.access.content = 'some content'
     r = rule.get_rule(names.ACCESS)
     self.assertRaises(MetapypeRuleError, r.validate_rule, self.access)
Exemple #9
0
 def test_rule_validation(self):
     r = rule.get_rule(names.ACCESS)
     self.assertIsNone(r.validate_rule(self.access))