From 2741a6a2a200e60dc47ec73537267c60eee4b1cf Mon Sep 17 00:00:00 2001 From: Swen Kooij Date: Tue, 30 May 2017 13:45:43 +0300 Subject: [PATCH] Add extra tests for LocalizedRef --- tests/test_expressions.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/tests/test_expressions.py b/tests/test_expressions.py index a655f9a..dd01441 100644 --- a/tests/test_expressions.py +++ b/tests/test_expressions.py @@ -48,18 +48,32 @@ class LocalizedExpressionsTestCase(TestCase): other=obj ) - for lang_code, _ in settings.LANGUAGES: - translation.activate(lang_code) - - queryset = ( + def create_queryset(ref): + return ( cls.TestModel1.objects - .annotate( - mytexts=LocalizedRef('features__text') - ) - .values_list( - 'mytexts', flat=True - ) + .annotate(mytexts=ref) + .values_list('mytexts', flat=True) ) + # assert that it properly selects the currently active language + for lang_code, _ in settings.LANGUAGES: + translation.activate(lang_code) + queryset = create_queryset(LocalizedRef('features__text')) + for index, value in enumerate(queryset): + assert translation.get_language() in value assert str(index) in value + + # ensure that the default language is used in case no + # language is active at all + translation.deactivate_all() + queryset = create_queryset(LocalizedRef('features__text')) + for index, value in enumerate(queryset): + assert settings.LANGUAGE_CODE in value + assert str(index) in value + + # ensures that overriding the language works properly + queryset = create_queryset(LocalizedRef('features__text', 'ro')) + for index, value in enumerate(queryset): + assert 'ro' in value + assert str(index) in value