from django.test import TestCase from localized_fields.fields import LocalizedField from localized_fields.value import LocalizedValue from .fake_model import get_fake_model class LocalizedModelTestCase(TestCase): """Tests whether the :see:LocalizedModel class.""" TestModel = None @classmethod def setUpClass(cls): """Creates the test model in the database.""" super(LocalizedModelTestCase, cls).setUpClass() cls.TestModel = get_fake_model({"title": LocalizedField()}) @classmethod def test_defaults(cls): """Tests whether all :see:LocalizedField fields are assigned an empty :see:LocalizedValue instance when the model is instanitiated.""" obj = cls.TestModel() assert isinstance(obj.title, LocalizedValue) @classmethod def test_model_init_kwargs(cls): """Tests whether all :see:LocalizedField fields are assigned an empty :see:LocalizedValue instance when the model is instanitiated.""" data = { "title": { "en": "english_title", "ro": "romanian_title", "nl": "dutch_title", } } obj = cls.TestModel(**data) assert isinstance(obj.title, LocalizedValue) assert obj.title.en == "english_title" assert obj.title.ro == "romanian_title" assert obj.title.nl == "dutch_title"