def _test_mapping(self, dir):
        mapping_csv = h.fixture_file("csv_import/%s/mapping.csv" % dir)
        mapping_json = h.fixture_file("csv_import/%s/mapping.json" % dir)

        csv = mapping_csv.read()
        expected_mapping_data = json.load(mapping_json)

        importer = MappingImporter()
        observed_mapping_data = importer.import_from_string(csv)

        assert observed_mapping_data == expected_mapping_data
    def _test_dataset_dir(self, dir):
        data_csv = h.fixture_file("csv_import/%s/data.csv" % dir)
        mapping_json = h.fixture_file("csv_import/%s/mapping.json" % dir)

        dataset_name = unicode(dir)

        model = csv_fixture_model()
        model["mapping"] = json.load(mapping_json)
        model["dataset"]["name"] = dataset_name

        lines = self.count_lines_in_stream(data_csv) - 1

        importer = CSVImporter(data_csv, model)
        importer.run()

        assert len(importer.errors) == 0, "Import should not throw errors"

        # check correct number of entries
        entries = Entry.find({"dataset.name": dataset_name})
        assert entries.count() == lines
def csv_fixture_mapping(name=None):
    if name is None:
        return default_mapping.copy()

    f = h.fixture_file("csv_import/%s-model.json" % name)
    return json.load(f)
def csv_fixture(name):
    return h.fixture_file("csv_import/%s.csv" % name)