summaryrefslogtreecommitdiff
path: root/tests/bulk_create
diff options
context:
space:
mode:
authorAhmet Kucuk <ahmetkucuk92@gmail.com>2019-10-01 13:13:19 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-10-21 11:46:44 +0200
commit09578f6dfb757c55f107e30a85434cedeb47465a (patch)
tree1e6d077b4c99f71deba9af60051d8b29e73d5efd /tests/bulk_create
parent312049091288dbba2299de8d07ea3e3311ed7238 (diff)
Fixed #30827 -- Made batch_size arg of QuerySet.bulk_create() respect DatabaseOperations.bulk_batch_size().
Thanks Chetan Khanna for tests.
Diffstat (limited to 'tests/bulk_create')
-rw-r--r--tests/bulk_create/tests.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/bulk_create/tests.py b/tests/bulk_create/tests.py
index 47aa7afcdc..3ccbfc19b3 100644
--- a/tests/bulk_create/tests.py
+++ b/tests/bulk_create/tests.py
@@ -1,3 +1,4 @@
+from math import ceil
from operator import attrgetter
from django.db import IntegrityError, NotSupportedError, connection
@@ -215,6 +216,14 @@ class BulkCreateTests(TestCase):
TwoFields.objects.bulk_create(objs, len(objs))
@skipUnlessDBFeature('has_bulk_insert')
+ def test_explicit_batch_size_respects_max_batch_size(self):
+ objs = [Country() for i in range(1000)]
+ fields = ['name', 'iso_two_letter', 'description']
+ max_batch_size = max(connection.ops.bulk_batch_size(fields, objs), 1)
+ with self.assertNumQueries(ceil(len(objs) / max_batch_size)):
+ Country.objects.bulk_create(objs, batch_size=max_batch_size + 1)
+
+ @skipUnlessDBFeature('has_bulk_insert')
def test_bulk_insert_expressions(self):
Restaurant.objects.bulk_create([
Restaurant(name="Sam's Shake Shack"),