Skip to content

Commit

Permalink
add tests for ActiveRef and TranslatedRef lookups
Browse files Browse the repository at this point in the history
  • Loading branch information
seroy authored and Photonios committed Oct 7, 2020
1 parent c9ae71a commit da4b170
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions tests/test_lookups.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,71 @@ def test_localized_lookup(self):

# ensure that hstore lookups still work
assert self.TestModel.objects.filter(text__ro="text_ro").exists()


class LocalizedRefLookupsTestCase(TestCase):
"""Tests whether ref lookups properly work with."""

TestModel1 = None

@classmethod
def setUpClass(cls):
"""Creates the test model in the database."""
super(LocalizedRefLookupsTestCase, cls).setUpClass()
cls.TestModel = get_fake_model({"text": LocalizedField()})
cls.TestModel.objects.create(
text=LocalizedValue(dict(en="text_en", ro="text_ro", nl="text_nl"))
)

def test_active_ref_lookup(self):
"""Tests whether active_ref lookup properly works."""

# assert that it properly lookups the currently active language
for lang_code, _ in settings.LANGUAGES:
translation.activate(lang_code)
assert self.TestModel.objects.filter(
text__active_ref=f"text_{lang_code}"
).exists()

# ensure that the default language is used in case no
# language is active at all
translation.deactivate_all()
assert self.TestModel.objects.filter(
text__active_ref="text_en"
).exists()

def test_translated_ref_lookup(self):
"""Tests whether translated_ref lookup properly works."""

# assert that it properly lookups the currently active language
for lang_code, _ in settings.LANGUAGES:
translation.activate(lang_code)
assert self.TestModel.objects.filter(
text__translated_ref=f"text_{lang_code}"
).exists()

# ensure that the default language is used in case no
# language is active at all
translation.deactivate_all()
assert self.TestModel.objects.filter(
text__translated_ref="text_en"
).exists()

fallbacks = {"cs": ["ru", "ro"], "pl": ["nl", "ro"]}

with override_settings(LOCALIZED_FIELDS_FALLBACKS=fallbacks):
with translation.override("cs"):
assert self.TestModel.objects.filter(
text__translated_ref="text_ro"
).exists()

with translation.override("pl"):
assert self.TestModel.objects.filter(
text__translated_ref="text_nl"
).exists()

# ensure that the default language is used in case no fallback is set
with translation.override("ru"):
assert self.TestModel.objects.filter(
text__translated_ref="text_en"
).exists()

0 comments on commit da4b170

Please sign in to comment.