peewee-plus/tests/test_calc_batch_size.py

46 lines
1.2 KiB
Python
Raw Normal View History

# pylint: disable=redefined-outer-name
# pylint: disable=missing-class-docstring
# pylint: disable=too-few-public-methods
# pylint: disable=unused-import
import peewee
import peewee_plus
from .fixtures import fakedb
def test_sqlite(fakedb):
"""Test the calculation of batch sizes on SQLite"""
class TestModel(peewee.Model):
class Meta:
database = fakedb
data = peewee.IntegerField()
models = [TestModel(item) for item in range(500)]
assert (
peewee_plus.calc_batch_size(models) <= peewee_plus.SQLITE_DEFAULT_VARIABLE_LIMIT
)
assert peewee_plus.calc_batch_size(models) < len(models)
assert peewee_plus.calc_batch_size([]) == 0
def test_non_sqlite():
"""Test the calculation of batch sizes on non-SQLite"""
class TestModel(peewee.Model):
class Meta:
database = peewee.DatabaseProxy()
data = peewee.IntegerField()
# Three is just chosen as an arbitrary multiplier to ensure the value is larger than the
# sqlite variable limit
assert peewee_plus.calc_batch_size(
[
TestModel(item)
for item in range(peewee_plus.SQLITE_DEFAULT_VARIABLE_LIMIT * 3)
]
) == (peewee_plus.SQLITE_DEFAULT_VARIABLE_LIMIT * 3)