def test_reading_from_more_models(self): model1 = FakeDjangoModel() model2 = FakeDjangoModel() importer = DjangoModelImporter() adapter1 = DjangoModelImportAdapter(model1) adapter1.column_names = self.content['Sheet1'][0] adapter2 = DjangoModelImportAdapter(model2) adapter2.column_names = self.content['Sheet2'][0] importer.append(adapter1) importer.append(adapter2) to_store = { adapter1.get_name(): self.content['Sheet1'][1:], adapter2.get_name(): self.content['Sheet2'][1:] } save_data(importer, to_store, file_type=DB_DJANGO) assert model1.objects.objs == self.result1 assert model2.objects.objs == self.result2 model1._meta.model_name = "Sheet1" model2._meta.model_name = "Sheet2" model1._meta.update(["X", "Y", "Z"]) model2._meta.update(["A", "B", "C"]) exporter = DjangoModelExporter() adapter1 = DjangoModelExportAdapter(model1) adapter2 = DjangoModelExportAdapter(model2) exporter.append(adapter1) exporter.append(adapter2) reader = DjangoBookReader() reader.open_content(exporter) data = reader.read_all() for key in data.keys(): data[key] = list(data[key]) assert data == self.content
def write_data(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(self.model) adapter.set_column_names(headers) adapter.set_column_name_mapping_dict(self.keywords.get(params.MAPDICT, None)) adapter.set_row_initializer(self.keywords.get(params.INITIALIZER, None)) importer.append(adapter) save_data(importer, {adapter.get_name(): sheet.array}, file_type=DB_DJANGO, **self.keywords)
def test_save_to_more_models(self): model1 = FakeDjangoModel() model2 = FakeDjangoModel() importer = DjangoModelImporter() adapter1 = DjangoModelImportAdapter(model1) adapter1.column_names = self.content['Sheet1'][0] adapter2 = DjangoModelImportAdapter(model2) adapter2.column_names = self.content['Sheet2'][0] importer.append(adapter1) importer.append(adapter2) to_store = { adapter1.get_name(): self.content['Sheet1'][1:], adapter2.get_name(): self.content['Sheet2'][1:] } writer = DjangoBookWriter() writer.open_content(importer) writer.write(to_store) writer.close() assert model1.objects.objs == self.result1 assert model2.objects.objs == self.result2
def test_save_to_more_models(self): model1=FakeDjangoModel() model2=FakeDjangoModel() importer = DjangoModelImporter() adapter1 = DjangoModelImportAdapter(model1) adapter1.set_column_names(self.content['Sheet1'][0]) adapter2 = DjangoModelImportAdapter(model2) adapter2.set_column_names(self.content['Sheet2'][0]) importer.append(adapter1) importer.append(adapter2) to_store = { adapter1.get_name(): self.content['Sheet1'][1:], adapter2.get_name(): self.content['Sheet2'][1:] } writer = DjangoBookWriter() writer.open_content(importer) writer.write(to_store) writer.close() assert model1.objects.objs == self.result1 assert model2.objects.objs == self.result2
def setUp(self): self.data = [["X", "Y", "Z"], [1, 2, 3], [4, 5, 6]] self.result = [{'Y': 2, 'X': 1, 'Z': 3}, {'Y': 5, 'X': 4, 'Z': 6}] self.model = FakeDjangoModel() importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(self.model) adapter.column_names = self.data[0] importer.append(adapter) save_data(importer, {adapter.get_name(): self.data[1:]}, file_type=DB_DJANGO) assert self.model.objects.objs == self.result self.model._meta.update(["X", "Y", "Z"])
def test_load_sheet_from_django_model(self): model=FakeDjangoModel() importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(model) adapter.set_column_names(self.data[0]) importer.append(adapter) save_data(importer, {adapter.get_name(): self.data[1:]}, file_type=DB_DJANGO) assert model.objects.objs == self.result model._meta.update(["X", "Y", "Z"]) reader = DjangoModelReader(model) data = reader.to_array() assert list(data) == self.data
def test_load_sheet_from_django_model(self): model = FakeDjangoModel() importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(model) adapter.column_names = self.data[0] importer.append(adapter) save_data(importer, {adapter.get_name(): self.data[1:]}, file_type=DB_DJANGO) assert model.objects.objs == self.result model._meta.update(["X", "Y", "Z"]) reader = DjangoModelReader(model) data = reader.to_array() assert list(data) == self.data
def write_data(self, sheet): headers = sheet.colnames if len(headers) == 0: headers = sheet.rownames importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(self.model) adapter.set_column_names(headers) adapter.set_column_name_mapping_dict( self.keywords.get(params.MAPDICT, None)) adapter.set_row_initializer(self.keywords.get(params.INITIALIZER, None)) importer.append(adapter) save_data(importer, {adapter.get_name(): sheet.array}, file_type=DB_DJANGO)
def test_load_and_format_sheet_from_django_model(self): model = FakeDjangoModel() importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(model) adapter.column_names = self.data[0] importer.append(adapter) save_data(importer, {adapter.get_name(): self.data[1:]}, file_type=DB_DJANGO) assert model.objects.objs == self.result model._meta.update(["X", "Y", "Z"]) def row_renderer(row): return [str(element) for element in row] # the key point of this test case reader = DjangoModelReader(model, row_renderer=row_renderer) data = reader.to_array() expected = [["X", "Y", "Z"], ['1', '2', '3'], ['4', '5', '6']] eq_(list(data), expected)
def setUp(self): self.data = [ ["X", "Y", "Z"], [1, 2, 3], [4, 5, 6] ] self.result = [ {'Y': 2, 'X': 1, 'Z': 3}, {'Y': 5, 'X': 4, 'Z': 6} ] self.model = FakeDjangoModel() importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(self.model) adapter.column_names = self.data[0] importer.append(adapter) save_data(importer, {adapter.get_name(): self.data[1:]}, file_type=DB_DJANGO) assert self.model.objects.objs == self.result self.model._meta.update(["X", "Y", "Z"])
def test_special_case_where_only_one_model_used(self): model1 = FakeDjangoModel() importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(model1) adapter.column_names = self.content['Sheet1'][0] importer.append(adapter) to_store = { adapter.get_name(): self.content['Sheet1'][1:], "Sheet2": self.content['Sheet2'][1:] } save_data(importer, to_store, file_type=DB_DJANGO) assert model1.objects.objs == self.result1 model1._meta.model_name = "Sheet1" model1._meta.update(["X", "Y", "Z"]) exporter = DjangoModelExporter() adapter = DjangoModelExportAdapter(model1) exporter.append(adapter) reader = DjangoBookReader() reader.open_content(exporter) data = reader.read_all() assert list(data['Sheet1']) == self.content['Sheet1']
def test_load_and_format_sheet_from_django_model(self): model = FakeDjangoModel() importer = DjangoModelImporter() adapter = DjangoModelImportAdapter(model) adapter.column_names = self.data[0] importer.append(adapter) save_data(importer, {adapter.get_name(): self.data[1:]}, file_type=DB_DJANGO) assert model.objects.objs == self.result model._meta.update(["X", "Y", "Z"]) def row_renderer(row): return [str(element) for element in row] # the key point of this test case reader = DjangoModelReader(model, row_renderer=row_renderer) data = reader.to_array() expected = [ ["X", "Y", "Z"], ['1', '2', '3'], ['4', '5', '6'] ] eq_(list(data), expected)