def test_same_day_multiple_catalog_uploads(node): with open_catalog('data.json') as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'json', 'node': node, 'file': temp_file} CatalogUpload.create_from_url_or_file(data_dict) with open_catalog('data.json') as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'json', 'node': node, 'file': temp_file} CatalogUpload.create_from_url_or_file(data_dict) assert CatalogUpload.objects.count() == 1
def test_raises_validation_error_if_catalog_is_not_valid(node): with open_catalog('catalogo-justicia.xlsx') as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'xlsx', 'node': node, 'file': temp_file} validator = CatalogDataValidator() with pytest.raises(ValidationError): validator.get_and_validate_data(data_dict)
def test_returns_correct_data_when_uploading_file(node): with open_catalog('data.json') as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'json', 'node': node, 'file': temp_file} validator = CatalogDataValidator() data = validator.get_and_validate_data(data_dict) assert b'dataset' in data['json_file'].read()
def test_create_from_file(node): filename = 'data.json' with open_catalog(filename) as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'json', 'node': node, 'file': temp_file} catalog = CatalogUpload.create_from_url_or_file(data_dict) assert b'dataset' in catalog.json_file.read()
def test_catalog_upload_creates_both_formats(node): filename = 'data.json' with open_catalog(filename) as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'json', 'node': node, 'file': temp_file} catalog = CatalogUpload.create_from_url_or_file(data_dict) assert catalog.json_file is not None assert catalog.xlsx_file is not None
def sync(self): path = latest_json_catalog_path(self.identifier) catalog_data = CatalogDataValidator().get_and_validate_data({ 'file': temp_uploaded_file(open(path, 'rb')), 'node': self, 'format': 'json', }) return CatalogUpload.upsert(catalog_data)
def test_validate_returns_error_message_if_catalog_is_not_valid(node): error_messages = [ "'publisher' is a required property", "'title' is a required property", "'superThemeTaxonomy' is a required property", "'description' is a required property", "'Índice-precios-internos-basicos-al-por-mayor-desagregado-base-1993-anual.csv' " "is not valid under any of the given schemas", ] with open_catalog('data.json') as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'json', 'node': node, 'file': temp_file} catalog_upload = CatalogUpload.create_from_url_or_file(data_dict) validation_result = catalog_upload.validate() for error_message in error_messages: assert error_message in validation_result
def test_create_from_not_valid_file(node): with open_catalog('simple.json') as sample: temp_file = temp_uploaded_file(sample) data_dict = {'format': 'json', 'node': node, 'file': temp_file} with pytest.raises(ValidationError): CatalogUpload.create_from_url_or_file(data_dict)