django-localized-fields/tests/test_localized_field_widget.py
2016-10-24 13:34:49 +03:00

44 lines
1.4 KiB
Python

from django.conf import settings
from django.test import TestCase
from localized_fields import LocalizedFieldWidget, LocalizedValue
class LocalizedFieldWidgetTestCase(TestCase):
"""Tests the workings of the :see:LocalizedFieldWidget class."""
@staticmethod
def test_widget_creation():
"""Tests whether a widget is created for every
language correctly."""
widget = LocalizedFieldWidget()
assert len(widget.widgets) == len(settings.LANGUAGES)
@staticmethod
def test_decompress():
"""Tests whether a :see:LocalizedValue instance
can correctly be "decompressed" over the available
widgets."""
localized_value = LocalizedValue()
for lang_code, lang_name in settings.LANGUAGES:
localized_value.set(lang_code, lang_name)
widget = LocalizedFieldWidget()
decompressed_values = widget.decompress(localized_value)
for (lang_code, _), value in zip(settings.LANGUAGES, decompressed_values):
assert localized_value.get(lang_code) == value
@staticmethod
def test_decompress_none():
"""Tests whether the :see:LocalizedFieldWidget correctly
handles :see:None."""
widget = LocalizedFieldWidget()
decompressed_values = widget.decompress(None)
for _, value in zip(settings.LANGUAGES, decompressed_values):
assert not value