Passed
Push — master ( 69718c...20d9e6 )
by Swen
02:10
created

test_decompress_none()   A

Complexity

Conditions 3

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
c 1
b 0
f 0
dl 0
loc 10
rs 9.4285
1
from django.conf import settings
2
from django.test import TestCase
3
4
from localized_fields.fields import LocalizedValue
5
from localized_fields.forms import LocalizedFieldWidget
6
7
8
class LocalizedFieldWidgetTestCase(TestCase):
9
    """Tests the workings of the :see:LocalizedFieldWidget class."""
10
11
    @staticmethod
12
    def test_widget_creation():
13
        """Tests whether a widget is created for every
14
        language correctly."""
15
16
        widget = LocalizedFieldWidget()
17
        assert len(widget.widgets) == len(settings.LANGUAGES)
18
19
    @staticmethod
20
    def test_decompress():
21
        """Tests whether a :see:LocalizedValue instance
22
        can correctly be "decompressed" over the available
23
        widgets."""
24
25
        localized_value = LocalizedValue()
26
        for lang_code, lang_name in settings.LANGUAGES:
27
            localized_value.set(lang_code, lang_name)
28
29
        widget = LocalizedFieldWidget()
30
        decompressed_values = widget.decompress(localized_value)
31
32
        for (lang_code, _), value in zip(settings.LANGUAGES, decompressed_values):
33
            assert localized_value.get(lang_code) == value
34
35
    @staticmethod
36
    def test_decompress_none():
37
        """Tests whether the :see:LocalizedFieldWidget correctly
38
        handles :see:None."""
39
40
        widget = LocalizedFieldWidget()
41
        decompressed_values = widget.decompress(None)
42
43
        for _, value in zip(settings.LANGUAGES, decompressed_values):
44
            assert not value
45