File: test_model_relations.py

package info (click to toggle)
python-django-parler 2.3-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,032 kB
  • sloc: python: 4,293; makefile: 164; sh: 6
file content (66 lines) | stat: -rw-r--r-- 2,247 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from .testapp.models import (
    ForeignKeyTranslationModel,
    RegularModel,
    TranslationRelated,
    TranslationRelatedRelation,
)
from .utils import AppTestCase


class TranslationRelationTestCase(AppTestCase):
    def test_related_objects_in_translation_model(self):
        instance = TranslationRelated()
        instance.set_current_language(self.other_lang1)

        # This should not raise errors
        instance.title = "Title Lang1"
        instance.save()

        instance.set_current_language(self.other_lang2)

        # This should not raise errors
        instance.title = "Title Lang2"
        instance.save()

        translation1 = instance.get_translation(self.other_lang1)

        translation1.translation_relations.create(name="relation 1.1")
        translation1.translation_relations.create(name="relation 1.2")

        translation2 = instance.get_translation(self.other_lang2)
        translation2.translation_relations.create(name="relation 2.1")

        total_related_objects = TranslationRelatedRelation.objects.filter(
            translation__master=instance
        ).count()

        lang1_related_object = TranslationRelatedRelation.objects.filter(
            translation__language_code=self.other_lang1,
            translation__master=instance,
        ).count()

        lang2_related_objects = TranslationRelatedRelation.objects.filter(
            translation__language_code=self.other_lang2,
            translation__master=instance,
        ).count()

        self.assertEqual(3, total_related_objects)
        self.assertEqual(2, lang1_related_object)
        self.assertEqual(1, lang2_related_objects)

    def test_translation_is_modified(self):
        r1 = RegularModel.objects.create(original_field="r1")
        r2 = RegularModel.objects.create(original_field="r2")

        instance = ForeignKeyTranslationModel.objects.create(
            translated_foreign=r1,
            shared="shared",
        )
        translation = instance.get_translation(instance.language_code)

        self.assertFalse(translation.is_modified)

        instance.translated_foreign = r2
        translation = instance.get_translation(instance.language_code)

        self.assertTrue(translation.is_modified)