support(bulk-create): add raise_error flag when bulk-create empty models (#853)
* add raise_error flag when bulk-create empty models * if not raise_error, return * fix ut cov * raise exception when it's empty
This commit is contained in:
@ -1134,6 +1134,10 @@ class QuerySet(Generic[T]):
|
|||||||
:param objects: list of ormar models already initialized and ready to save.
|
:param objects: list of ormar models already initialized and ready to save.
|
||||||
:type objects: List[Model]
|
:type objects: List[Model]
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if not objects:
|
||||||
|
raise ModelListEmptyError("Bulk create objects are empty!")
|
||||||
|
|
||||||
ready_objects = [obj.prepare_model_to_save(obj.dict()) for obj in objects]
|
ready_objects = [obj.prepare_model_to_save(obj.dict()) for obj in objects]
|
||||||
|
|
||||||
# don't use execute_many, as in databases it's executed in a loop
|
# don't use execute_many, as in databases it's executed in a loop
|
||||||
|
|||||||
@ -286,6 +286,9 @@ async def test_bulk_create():
|
|||||||
completed = await ToDo.objects.filter(completed=True).all()
|
completed = await ToDo.objects.filter(completed=True).all()
|
||||||
assert len(completed) == 2
|
assert len(completed) == 2
|
||||||
|
|
||||||
|
with pytest.raises(ormar.exceptions.ModelListEmptyError):
|
||||||
|
await ToDo.objects.bulk_create([])
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_bulk_create_json_field():
|
async def test_bulk_create_json_field():
|
||||||
|
|||||||
Reference in New Issue
Block a user