expose bulk_save control to outside world. fix #46

This commit is contained in:
chfw 2018-01-10 17:05:48 +00:00
parent a9bbbc4de7
commit eddda91d5b
2 changed files with 24 additions and 1 deletions

View File

@ -70,7 +70,9 @@ class DjangoBookWriter(BookWriter):
if model:
sheet_writer = DjangoModelWriter(
self.__importer, model,
batch_size=self._keywords.get('batch_size', None))
batch_size=self._keywords.get('batch_size', None),
bulk_save=self._keywords.get('bulk_save', True)
)
else:
raise Exception("No django model found!")
return sheet_writer

View File

@ -315,6 +315,27 @@ class TestMultipleModels:
assert model2.objects.objs == self.result2
assert model1.objects.batch_size == sample_size
def test_bulk_save_flag(self):
sample_size = 10
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, batch_size=sample_size, bulk_save=False)
writer.write(to_store)
writer.close()
assert model1.objects.objs == []
def test_reading_from_more_models(self):
model1 = FakeDjangoModel()
model2 = FakeDjangoModel()