mirror of
https://github.com/SectorLabs/django-localized-fields.git
synced 2025-04-24 19:32:53 +03:00
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
from django.db import models
|
|
from django.test import TestCase
|
|
|
|
from localized_fields.fields import LocalizedField, LocalizedUniqueSlugField
|
|
|
|
from .fake_model import get_fake_model
|
|
|
|
|
|
class LocalizedBulkTestCase(TestCase):
|
|
"""Tests bulk operations with data structures provided by the django-
|
|
localized-fields library."""
|
|
|
|
@staticmethod
|
|
def test_localized_bulk_insert():
|
|
"""Tests whether bulk inserts work properly when using a
|
|
:see:LocalizedUniqueSlugField in the model."""
|
|
|
|
model = get_fake_model(
|
|
{
|
|
"name": LocalizedField(),
|
|
"slug": LocalizedUniqueSlugField(
|
|
populate_from="name", include_time=True
|
|
),
|
|
"score": models.IntegerField(),
|
|
}
|
|
)
|
|
|
|
to_create = [
|
|
model(
|
|
name={"en": "english name 1", "ro": "romanian name 1"}, score=1
|
|
),
|
|
model(
|
|
name={"en": "english name 2", "ro": "romanian name 2"}, score=2
|
|
),
|
|
model(
|
|
name={"en": "english name 3", "ro": "romanian name 3"}, score=3
|
|
),
|
|
]
|
|
|
|
model.objects.bulk_create(to_create)
|
|
assert model.objects.all().count() == 3
|
|
|
|
for obj in to_create:
|
|
obj_db = model.objects.filter(
|
|
name__en=obj.name.en, name__ro=obj.name.ro, score=obj.score
|
|
).first()
|
|
|
|
assert obj_db
|
|
assert len(obj_db.slug.en) >= len(obj_db.name.en)
|
|
assert len(obj_db.slug.ro) >= len(obj_db.name.ro)
|