예제 #1
0
    def test_group_constraint(self):
        """Test model with group constraint"""

        self.assertTrue(self._check_subset_string())

        admin01 = self.test_user1
        group1 = admin01.groups.all()[0]
        world = self.world
        constraint = SingleLayerConstraint(layer=world, active=True)
        constraint.save()

        rule = ConstraintSubsetStringRule(constraint=constraint,
                                          group=group1,
                                          rule="NAME != 'ITALY'")
        rule.save()

        self.assertEqual(rule.user_or_group, group1)
        self.assertEqual(
            ConstraintSubsetStringRule.get_constraints_for_user(
                admin01, world)[0], rule)
        constraint.active = False
        constraint.save()
        self.assertEqual(
            ConstraintSubsetStringRule.get_active_constraints_for_user(
                admin01, world), [])
        constraint.active = True
        constraint.save()
        self.assertEqual(
            ConstraintSubsetStringRule.get_active_constraints_for_user(
                admin01, world)[0], rule)
        self.assertEqual(
            ConstraintSubsetStringRule.get_rule_definition_for_user(
                admin01, world.pk), "(NAME != 'ITALY')")

        self.assertFalse(self._check_subset_string())
예제 #2
0
    def test_user_constraint(self):
        """Test model with user constraint"""

        self.assertTrue(self._check_subset_string())

        admin01 = self.test_user1
        constraint = SingleLayerConstraint(layer=self.world, active=True)
        constraint.save()

        rule = ConstraintSubsetStringRule(constraint=constraint,
                                          user=admin01,
                                          rule="NAME != 'ITALY'")
        rule.save()

        self.assertEqual(rule.user_or_group, admin01)
        self.assertEqual(
            ConstraintSubsetStringRule.get_constraints_for_user(
                admin01, self.world)[0], rule)
        constraint.active = False
        constraint.save()
        self.assertEqual(
            ConstraintSubsetStringRule.get_active_constraints_for_user(
                admin01, self.world), [])
        constraint.active = True
        constraint.save()
        self.assertEqual(
            ConstraintSubsetStringRule.get_active_constraints_for_user(
                admin01, self.world)[0], rule)
        self.assertEqual(
            ConstraintSubsetStringRule.get_rule_definition_for_user(
                admin01, self.world.pk), "(NAME != 'ITALY')")

        self.assertFalse(self._check_subset_string())

        self.assertEqual(constraint.layer_name, 'world')
        self.assertEqual(constraint.qgs_layer_id, 'world20181008111156525')
        self.assertEqual(constraint.rule_count, 1)