Beispiel #1
0
def test_mandatory_metadata_non_default_theme():
    metadata = [
        {
            "name": "period_id",
            "type": "string"
        },
        {
            "name": "user_id",
            "type": "string"
        },
    ]
    validator = MetadataValidator(metadata, "another_theme")
    validator.validate_mandatory()

    assert not validator.errors
Beispiel #2
0
def test_mandatory_metadata():
    metadata = [
        {
            "name": "period_id",
            "type": "string"
        },
        {
            "name": "user_id",
            "type": "string"
        },
    ]
    validator = MetadataValidator(metadata, "default")
    validator.validate_mandatory()

    expected_errors = [{
        "message": validator.MISSING_METADATA,
        "metadata": "ru_name"
    }]

    assert validator.errors == expected_errors
Beispiel #3
0
    def validate(self):
        metadata_validator = MetadataValidator(self.schema_element["metadata"],
                                               self.schema_element["theme"])
        self.errors += metadata_validator.validate()

        placeholder_validator = PlaceholderValidator(self.schema_element)
        self.errors += placeholder_validator.validate()

        self.validate_duplicates()
        self.validate_smart_quotes()

        for section in self.questionnaire_schema.sections:
            section_validator = SectionValidator(section,
                                                 self.questionnaire_schema)
            self.errors += section_validator.validate()

        required_hub_section_ids = self.schema_element["questionnaire_flow"][
            "options"].get("required_completed_sections", [])

        self.validate_required_section_ids(
            self.questionnaire_schema.section_ids, required_hub_section_ids)
        return self.errors
Beispiel #4
0
def test_duplicate_metadata():
    metadata = [
        {
            "name": "period_id",
            "type": "string"
        },
        {
            "name": "user_id",
            "type": "string"
        },
        {
            "name": "period_id",
            "type": "string"
        },
    ]
    validator = MetadataValidator(metadata, "default")
    validator.validate_duplicates()

    expected_errors = [{
        "message": validator.DUPLICATE_METADATA,
        "duplicates": ["period_id"]
    }]

    assert validator.errors == expected_errors