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)
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])
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)