13 | @staticmethod |
14 | def test_localized_bulk_insert(): |
15 | """Tests whether bulk inserts work properly when using a |
16 | :see:LocalizedUniqueSlugField in the model.""" |
17 | |
18 | model = get_fake_model( |
19 | { |
20 | "name": LocalizedField(), |
21 | "slug": LocalizedUniqueSlugField( |
22 | populate_from="name", include_time=True |
23 | ), |
24 | "score": models.IntegerField(), |
25 | } |
26 | ) |
27 | |
28 | to_create = [ |
29 | model( |
30 | name={"en": "english name 1", "ro": "romanian name 1"}, score=1 |
31 | ), |
32 | model( |
33 | name={"en": "english name 2", "ro": "romanian name 2"}, score=2 |
34 | ), |
35 | model( |
36 | name={"en": "english name 3", "ro": "romanian name 3"}, score=3 |
37 | ), |
38 | ] |
39 | |
40 | model.objects.bulk_create(to_create) |
41 | assert model.objects.all().count() == 3 |
42 | |
43 | for obj in to_create: |
44 | obj_db = model.objects.filter( |
45 | name__en=obj.name.en, name__ro=obj.name.ro, score=obj.score |
46 | ).first() |
47 | |
48 | assert obj_db |
49 | assert len(obj_db.slug.en) >= len(obj_db.name.en) |
50 | assert len(obj_db.slug.ro) >= len(obj_db.name.ro) |