Completed
Push — master ( 828b34...354252 )
by Diederik van der
8s
created

parler.tests.UtilTestCase   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 84
Duplicated Lines 0 %
Metric Value
dl 0
loc 84
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A test_get_parler_languages_from_django_cms() 0 67 2
A test_get_language_title() 0 14 2
1
# -*- coding: utf-8 -*-
2
3
from __future__ import unicode_literals
4
5
from django.test import TestCase
6
7
from parler.utils import get_parler_languages_from_django_cms
8
from parler.utils.i18n import get_language_title
9
10
11
class UtilTestCase(TestCase):
12
13
    def test_get_parler_languages_from_django_cms(self):
14
        cms = {
15
            1: [
16
                {
17
                    'code': 'en',
18
                    'fallbacks': ['es'],
19
                    'hide_untranslated': True,
20
                    'name': 'English',
21
                    'public': True,
22
                    'redirect_on_fallback': True
23
                },
24
                {
25
                    'code': 'es',
26
                    'fallbacks': ['en'],
27
                    'hide_untranslated': True,
28
                    'name': 'Spanish',
29
                    'public': True,
30
                    'redirect_on_fallback': True
31
                },
32
                {
33
                    'code': 'fr',
34
                    'fallbacks': ['en'],
35
                    'hide_untranslated': True,
36
                    'name': 'French',
37
                    'public': True,
38
                    'redirect_on_fallback': True
39
                }
40
            ],
41
            'default': {
42
                'fallbacks': ['en', ],
43
                'hide_untranslated': True,
44
                'public': True,
45
                'redirect_on_fallback': True
46
            }
47
        }
48
49
        parler = {
50
            1: [
51
                {
52
                    'code': 'en',
53
                    'fallbacks': ['es'],
54
                    'hide_untranslated': True,
55
                    'redirect_on_fallback': True
56
                },
57
                {
58
                    'code': 'es',
59
                    'fallbacks': ['en'],
60
                    'hide_untranslated': True,
61
                    'redirect_on_fallback': True
62
                },
63
                {
64
                    'code': 'fr',
65
                    'fallbacks': ['en'],
66
                    'hide_untranslated': True,
67
                    'redirect_on_fallback': True
68
                }
69
            ],
70
            'default': {
71
                'fallbacks': ['en', ],
72
                'hide_untranslated': True,
73
                'redirect_on_fallback': True
74
            }
75
        }
76
77
        computed = get_parler_languages_from_django_cms(cms)
78
        for block, block_config in computed.items():
79
            self.assertEqual(computed[block], parler[block])
80
81
    def test_get_language_title(self):
82
        """Test get_language_title utility function"""
83
        language_code = 'en'
84
        self.assertEqual(get_language_title(language_code), 'English')
85
86
        # Test the case where requested language is not in settings.
87
        # We can not override settings, since languages in get_language_title()
88
        # are initialised during import. So, we use fictional language code.
89
        language_code = 'xx'
90
        try:
91
            self.assertEqual(get_language_title(language_code), language_code)
92
        except KeyError:
93
            self.fail(
94
                "get_language_title() raises KeyError for missing language")
95