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