Пример #1
0
    def get_catalog_errors(self):
        catalog = DataJson(catalog=self.catalog_url, catalog_format=self.catalog_format)

        all_errors = catalog.validate_catalog(only_errors=True)
        error_messages = []

        catalog_validation = all_errors['error']['catalog']
        if catalog_validation['errors']:
            error_messages.append(f"En catálogo {catalog_validation['title']}:"
                                  f" {catalog_validation['errors']}")

        for dataset_validation in all_errors['error']['dataset']:
            for error in dataset_validation['errors']:
                error_messages.append(f"En dataset {dataset_validation['title']}:"
                                      f" {error['message']}")

        return error_messages
    def validate(self):
        error_messages = []
        file_field = self.json_file if self.json_file else self.xlsx_file
        file_path = os.path.join(settings.MEDIA_ROOT, file_field.name)

        try:
            data_json = DataJson(file_path)
        except KeyError:
            return ["No se puede validar el catálogo ingresado"]

        if not data_json.is_valid_catalog():
            error_report = data_json.validate_catalog()
            errors = error_report['error']['catalog']['errors']

            for dataset in error_report['error']['dataset']:
                errors += dataset['errors']

            error_messages = [error['message'] for error in errors]

        return error_messages
Пример #3
0
 def validate_pydatajson(self):
     create_models(type='layer')
     create_models(type='document')
     catalog = data_jsonar()
     dj = DataJson()
     assert_true(dj.is_valid_catalog(catalog), dj.validate_catalog(catalog))