Completed
Push — master ( 95d957...d1e8a5 )
by Diederik van der
01:25
created

AdminTests.test_default_change_form_template()   A

Complexity

Conditions 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 1
1
from __future__ import unicode_literals
2
3
from django.contrib.admin import AdminSite
4
5
from parler.admin import TranslatableAdmin
6
7
try:
8
    from django.contrib.admin.utils import label_for_field
9
except ImportError:
10
    from django.contrib.admin.util import label_for_field
11
from .utils import AppTestCase
12
from .testapp.models import SimpleModel, ConcreteModel, AbstractModel
13
14
15
class AdminTests(AppTestCase):
16
    """
17
    Test admin features
18
    """
19
20
    def test_list_label(self):
21
        # See that adding a field to the admin list_display also receives the translated title
22
        # This happens by TranslatedFieldDescriptor.short_description
23
        self.assertEqual(label_for_field('tr_title', SimpleModel), "Translated Title")
24
25
    def test_list_label_abc(self):
26
        # See that the TranslatedFieldDescriptor of the concrete model properly routes to the proper model
27
        self.assertEqual(label_for_field('tr_title', ConcreteModel), "Translated Title")
28
29
        # See that the TranslatedFieldDescriptor of the abstract model handles the fallback properly.
30
        self.assertEqual(label_for_field('tr_title', AbstractModel), "Tr title")
31
32
    def test_default_change_form_template(self):
33
        site = AdminSite()
34
        site.register(SimpleModel, TranslatableAdmin)
35
        admin = site._registry[SimpleModel]
36
        self.assertEqual(admin.default_change_form_template, "admin/change_form.html")
37
38
        # Avoid str + __proxy__ errors
39
        self.assertEqual("default/" + admin.default_change_form_template, "default/admin/change_form.html")
40