Exemple #1
0
    def clean_condition(self):
        condition = self.cleaned_data["condition"]

        try:
            tree = codingruletoolkit.parse(CodingRule(condition=condition))
        except (Code.DoesNotExist, CodingSchemaField.DoesNotExist, CodingRule.DoesNotExist) as e:
            raise ValidationError(e)
        except SyntaxError as e:
            raise ValidationError(e)

        if tree is not None:
            codingruletoolkit.clean_tree(self.codingschema, tree)

        return condition
Exemple #2
0
    def clean_condition(self):
        condition = self.cleaned_data["condition"]

        try:
            tree = codingruletoolkit.parse(CodingRule(condition=condition))
        except (Code.DoesNotExist, CodingSchemaField.DoesNotExist, CodingRule.DoesNotExist) as e:
            raise ValidationError(e)
        except SyntaxError as e:
            raise ValidationError(e)

        if tree is not None:
            codingruletoolkit.clean_tree(self.codingschema, tree)

        return condition
Exemple #3
0
    def test_clean_tree(self):
        import functools

        o1, o2 = amcattest.create_test_code(), amcattest.create_test_code()
        codebook, codebook_codes = amcattest.create_test_codebook_with_codes()
        schema_with_fields = amcattest.create_test_schema_with_fields(codebook=codebook)

        schema = schema_with_fields[0]
        code_field = schema_with_fields[4]

        c = functools.partial(self.condition, schema)

        tree = parse(c("{code_field.id}=={o1.id}".format(**locals())))
        self.assertRaises(ValidationError, clean_tree, schema, tree)
        tree = parse(c("{code_field.id}=={code.id}".format(code_field=code_field, code=codebook.codes[0])))
        self.assertEquals(clean_tree(schema, tree), None)
        self.assertRaises(ValidationError, clean_tree, amcattest.create_test_schema_with_fields()[0], tree)
Exemple #4
0
    def test_clean_tree(self):
        import functools

        o1, o2 = amcattest.create_test_code(), amcattest.create_test_code()
        codebook, codebook_codes = amcattest.create_test_codebook_with_codes()
        schema_with_fields = amcattest.create_test_schema_with_fields(
            codebook=codebook)

        schema = schema_with_fields[0]
        code_field = schema_with_fields[4]

        c = functools.partial(self.condition, schema)

        tree = parse(c("{code_field.id}=={o1.id}".format(**locals())))
        self.assertRaises(ValidationError, clean_tree, schema, tree)
        tree = parse(
            c("{code_field.id}=={code.id}".format(code_field=code_field,
                                                  code=codebook.codes[0])))
        self.assertEquals(clean_tree(schema, tree), None)
        self.assertRaises(ValidationError, clean_tree,
                          amcattest.create_test_schema_with_fields()[0], tree)