Beispiel #1
0
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()
Beispiel #4
0
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()
Beispiel #5
0
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
Beispiel #6
0
    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)
Beispiel #7
0
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
Beispiel #8
0
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)