Exemple #1
0
    def test_of_type_without_hit(self):
        """ Test of_type method with empty result. """
        cons_set = Constraint.ConstraintSet()
        cons1 = Constraint.SubsetConstraint(uid="1", name="S1")
        cons2 = Constraint.ValueConstraint(uid="2", name="V1")
        cons3 = Constraint.SubsetConstraint(uid="3", name="S2")

        cons_set.add(cons1)
        cons_set.add(cons2)
        cons_set.add(cons3)

        actual = cons_set.of_type(Constraint.MandatoryConstraint)
        expect = []
        self.assertItemsEqual(actual, expect)
Exemple #2
0
    def test_add_subset_roles(self):
        """ Test adding subset and superset roles to subset constraint. """
        role1 = Role(name="R1")
        role2 = Role(name="R2")
        cons = Constraint.SubsetConstraint(name="S1",
                                           subset=[role1],
                                           superset=[role2])

        self.assertItemsEqual(cons.covers, [role1, role2])
        self.assertEquals(cons.subset, [role1])
        self.assertEquals(cons.superset, [role2])
Exemple #3
0
    def _load_subset_constraint(self, xml_node):
        """ Load subset constraint. """
        attribs, name = get_basic_attribs(xml_node)
        name = "Subset constraint " + name

        sequences_node = find(xml_node, "RoleSequences")

        if len(sequences_node) != 2:
            msg = "{0} does not have exactly two role sequences"
            raise Exception(msg.format(name))

        # Load subset and superset role sequences
        attribs['subset'] = self._load_role_sequence(sequences_node[0], name)
        attribs['superset'] = self._load_role_sequence(sequences_node[1], name)

        return Constraint.SubsetConstraint(**attribs)