Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
django
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
django
Commits
97c1931c
Kaydet (Commit)
97c1931c
authored
Ock 06, 2017
tarafından
Andy Craze
Kaydeden (comit)
Tim Graham
Ock 06, 2017
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Fixed #24423 -- Reorganized i18n tag tests.
üst
93905339
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
496 additions
and
0 deletions
+496
-0
tests.py
tests/i18n/tests.py
+0
-0
__init__.py
tests/template_tests/syntax_tests/i18n/__init__.py
+0
-0
base.py
tests/template_tests/syntax_tests/i18n/base.py
+27
-0
test_blocktrans.py
tests/template_tests/syntax_tests/i18n/test_blocktrans.py
+0
-0
test_filters.py
tests/template_tests/syntax_tests/i18n/test_filters.py
+50
-0
test_get_available_languages.py
...e_tests/syntax_tests/i18n/test_get_available_languages.py
+16
-0
test_get_language_info.py
...emplate_tests/syntax_tests/i18n/test_get_language_info.py
+39
-0
test_get_language_info_list.py
...te_tests/syntax_tests/i18n/test_get_language_info_list.py
+48
-0
test_trans.py
tests/template_tests/syntax_tests/i18n/test_trans.py
+207
-0
test_underscore_syntax.py
...emplate_tests/syntax_tests/i18n/test_underscore_syntax.py
+109
-0
No files found.
tests/i18n/tests.py
Dosyayı görüntüle @
97c1931c
This diff is collapsed.
Click to expand it.
tests/template_tests/syntax_tests/i18n/__init__.py
0 → 100644
Dosyayı görüntüle @
97c1931c
tests/template_tests/syntax_tests/i18n/base.py
0 → 100644
Dosyayı görüntüle @
97c1931c
from
__future__
import
unicode_literals
import
os
from
django.conf
import
settings
from
django.test
import
SimpleTestCase
from
django.utils._os
import
upath
from
django.utils.translation
import
activate
,
get_language
here
=
os
.
path
.
dirname
(
os
.
path
.
dirname
(
os
.
path
.
abspath
(
upath
(
__file__
))))
pdir
=
os
.
path
.
split
(
os
.
path
.
split
(
os
.
path
.
abspath
(
here
))[
0
])[
0
]
extended_locale_paths
=
settings
.
LOCALE_PATHS
+
[
os
.
path
.
join
(
pdir
,
'i18n'
,
'other'
,
'locale'
),
]
class
MultipleLocaleActivationTestCase
(
SimpleTestCase
):
"""
Tests for template rendering when multiple locales are activated during the
lifetime of the same process.
"""
def
setUp
(
self
):
self
.
_old_language
=
get_language
()
def
tearDown
(
self
):
activate
(
self
.
_old_language
)
tests/template_tests/syntax_tests/
test_i18n
.py
→
tests/template_tests/syntax_tests/
i18n/test_blocktrans
.py
Dosyayı görüntüle @
97c1931c
This diff is collapsed.
Click to expand it.
tests/template_tests/syntax_tests/i18n/test_filters.py
0 → 100644
Dosyayı görüntüle @
97c1931c
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.test
import
SimpleTestCase
from
django.utils
import
translation
from
...utils
import
setup
class
I18nFiltersTests
(
SimpleTestCase
):
libraries
=
{
'custom'
:
'template_tests.templatetags.custom'
,
'i18n'
:
'django.templatetags.i18n'
,
}
@setup
({
'i18n32'
:
'{
%
load i18n
%
}{{ "hu"|language_name }} '
'{{ "hu"|language_name_local }} {{ "hu"|language_bidi }} '
'{{ "hu"|language_name_translated }}'
})
def
test_i18n32
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n32'
)
self
.
assertEqual
(
output
,
'Hungarian Magyar False Hungarian'
)
with
translation
.
override
(
'cs'
):
output
=
self
.
engine
.
render_to_string
(
'i18n32'
)
self
.
assertEqual
(
output
,
'Hungarian Magyar False maďarsky'
)
@setup
({
'i18n33'
:
'{
%
load i18n
%
}'
'{{ langcode|language_name }} {{ langcode|language_name_local }} '
'{{ langcode|language_bidi }} {{ langcode|language_name_translated }}'
})
def
test_i18n33
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n33'
,
{
'langcode'
:
'nl'
})
self
.
assertEqual
(
output
,
'Dutch Nederlands False Dutch'
)
with
translation
.
override
(
'cs'
):
output
=
self
.
engine
.
render_to_string
(
'i18n33'
,
{
'langcode'
:
'nl'
})
self
.
assertEqual
(
output
,
'Dutch Nederlands False nizozemsky'
)
@setup
({
'i18n38_2'
:
'{
%
load i18n custom
%
}'
'{
%
get_language_info_list for langcodes|noop:"x y" as langs
%
}'
'{
%
for l in langs
%
}{{ l.code }}: {{ l.name }}/'
'{{ l.name_local }}/{{ l.name_translated }} '
'bidi={{ l.bidi }}; {
%
endfor
%
}'
})
def
test_i18n38_2
(
self
):
with
translation
.
override
(
'cs'
):
output
=
self
.
engine
.
render_to_string
(
'i18n38_2'
,
{
'langcodes'
:
[
'it'
,
'fr'
]})
self
.
assertEqual
(
output
,
'it: Italian/italiano/italsky bidi=False; '
'fr: French/français/francouzsky bidi=False; '
)
tests/template_tests/syntax_tests/i18n/test_get_available_languages.py
0 → 100644
Dosyayı görüntüle @
97c1931c
from
__future__
import
unicode_literals
from
django.test
import
SimpleTestCase
from
...utils
import
setup
class
GetAvailableLanguagesTagTests
(
SimpleTestCase
):
libraries
=
{
'i18n'
:
'django.templatetags.i18n'
}
@setup
({
'i18n12'
:
'{
%
load i18n
%
}'
'{
%
get_available_languages as langs
%
}{
%
for lang in langs
%
}'
'{
%
if lang.0 == "de"
%
}{{ lang.0 }}{
%
endif
%
}{
%
endfor
%
}'
})
def
test_i18n12
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n12'
)
self
.
assertEqual
(
output
,
'de'
)
tests/template_tests/syntax_tests/i18n/test_get_language_info.py
0 → 100644
Dosyayı görüntüle @
97c1931c
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.test
import
SimpleTestCase
from
django.utils
import
translation
from
...utils
import
setup
class
I18nGetLanguageInfoTagTests
(
SimpleTestCase
):
libraries
=
{
'custom'
:
'template_tests.templatetags.custom'
,
'i18n'
:
'django.templatetags.i18n'
,
}
# retrieving language information
@setup
({
'i18n28_2'
:
'{
%
load i18n
%
}'
'{
%
get_language_info for "de" as l
%
}'
'{{ l.code }}: {{ l.name }}/{{ l.name_local }} bidi={{ l.bidi }}'
})
def
test_i18n28_2
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n28_2'
)
self
.
assertEqual
(
output
,
'de: German/Deutsch bidi=False'
)
@setup
({
'i18n29'
:
'{
%
load i18n
%
}'
'{
%
get_language_info for LANGUAGE_CODE as l
%
}'
'{{ l.code }}: {{ l.name }}/{{ l.name_local }} bidi={{ l.bidi }}'
})
def
test_i18n29
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n29'
,
{
'LANGUAGE_CODE'
:
'fi'
})
self
.
assertEqual
(
output
,
'fi: Finnish/suomi bidi=False'
)
# Test whitespace in filter arguments
@setup
({
'i18n38'
:
'{
%
load i18n custom
%
}'
'{
%
get_language_info for "de"|noop:"x y" as l
%
}'
'{{ l.code }}: {{ l.name }}/{{ l.name_local }}/'
'{{ l.name_translated }} bidi={{ l.bidi }}'
})
def
test_i18n38
(
self
):
with
translation
.
override
(
'cs'
):
output
=
self
.
engine
.
render_to_string
(
'i18n38'
)
self
.
assertEqual
(
output
,
'de: German/Deutsch/německy bidi=False'
)
tests/template_tests/syntax_tests/i18n/test_get_language_info_list.py
0 → 100644
Dosyayı görüntüle @
97c1931c
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.test
import
SimpleTestCase
from
django.utils
import
translation
from
...utils
import
setup
class
GetLanguageInfoListTests
(
SimpleTestCase
):
libraries
=
{
'custom'
:
'template_tests.templatetags.custom'
,
'i18n'
:
'django.templatetags.i18n'
,
}
@setup
({
'i18n30'
:
'{
%
load i18n
%
}'
'{
%
get_language_info_list for langcodes as langs
%
}'
'{
%
for l in langs
%
}{{ l.code }}: {{ l.name }}/'
'{{ l.name_local }} bidi={{ l.bidi }}; {
%
endfor
%
}'
})
def
test_i18n30
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n30'
,
{
'langcodes'
:
[
'it'
,
'no'
]})
self
.
assertEqual
(
output
,
'it: Italian/italiano bidi=False; no: Norwegian/norsk bidi=False; '
)
@setup
({
'i18n31'
:
'{
%
load i18n
%
}'
'{
%
get_language_info_list for langcodes as langs
%
}'
'{
%
for l in langs
%
}{{ l.code }}: {{ l.name }}/'
'{{ l.name_local }} bidi={{ l.bidi }}; {
%
endfor
%
}'
})
def
test_i18n31
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n31'
,
{
'langcodes'
:
((
'sl'
,
'Slovenian'
),
(
'fa'
,
'Persian'
))})
self
.
assertEqual
(
output
,
'sl: Slovenian/Sloven
\u0161\u010d
ina bidi=False; '
'fa: Persian/
\u0641\u0627\u0631\u0633\u06cc
bidi=True; '
)
@setup
({
'i18n38_2'
:
'{
%
load i18n custom
%
}'
'{
%
get_language_info_list for langcodes|noop:"x y" as langs
%
}'
'{
%
for l in langs
%
}{{ l.code }}: {{ l.name }}/'
'{{ l.name_local }}/{{ l.name_translated }} '
'bidi={{ l.bidi }}; {
%
endfor
%
}'
})
def
test_i18n38_2
(
self
):
with
translation
.
override
(
'cs'
):
output
=
self
.
engine
.
render_to_string
(
'i18n38_2'
,
{
'langcodes'
:
[
'it'
,
'fr'
]})
self
.
assertEqual
(
output
,
'it: Italian/italiano/italsky bidi=False; '
'fr: French/français/francouzsky bidi=False; '
)
tests/template_tests/syntax_tests/i18n/test_trans.py
0 → 100644
Dosyayı görüntüle @
97c1931c
from
__future__
import
unicode_literals
from
threading
import
local
from
django.template
import
Context
,
Template
,
TemplateSyntaxError
from
django.test
import
SimpleTestCase
,
override_settings
from
django.utils
import
translation
from
django.utils.safestring
import
mark_safe
from
django.utils.translation
import
trans_real
from
...utils
import
setup
from
.base
import
MultipleLocaleActivationTestCase
,
extended_locale_paths
class
I18nTransTagTests
(
SimpleTestCase
):
libraries
=
{
'i18n'
:
'django.templatetags.i18n'
}
@setup
({
'i18n01'
:
'{
%
load i18n
%
}{
%
trans
\'
xxxyyyxxx
\'
%
}'
})
def
test_i18n01
(
self
):
"""simple translation of a string delimited by '."""
output
=
self
.
engine
.
render_to_string
(
'i18n01'
)
self
.
assertEqual
(
output
,
'xxxyyyxxx'
)
@setup
({
'i18n02'
:
'{
%
load i18n
%
}{
%
trans "xxxyyyxxx"
%
}'
})
def
test_i18n02
(
self
):
"""simple translation of a string delimited by "."""
output
=
self
.
engine
.
render_to_string
(
'i18n02'
)
self
.
assertEqual
(
output
,
'xxxyyyxxx'
)
@setup
({
'i18n06'
:
'{
%
load i18n
%
}{
%
trans "Page not found"
%
}'
})
def
test_i18n06
(
self
):
"""simple translation of a string to German"""
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n06'
)
self
.
assertEqual
(
output
,
'Seite nicht gefunden'
)
@setup
({
'i18n09'
:
'{
%
load i18n
%
}{
%
trans "Page not found" noop
%
}'
})
def
test_i18n09
(
self
):
"""simple non-translation (only marking) of a string to German"""
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n09'
)
self
.
assertEqual
(
output
,
'Page not found'
)
@setup
({
'i18n20'
:
'{
%
load i18n
%
}{
%
trans andrew
%
}'
})
def
test_i18n20
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n20'
,
{
'andrew'
:
'a & b'
})
self
.
assertEqual
(
output
,
'a & b'
)
@setup
({
'i18n22'
:
'{
%
load i18n
%
}{
%
trans andrew
%
}'
})
def
test_i18n22
(
self
):
output
=
self
.
engine
.
render_to_string
(
'i18n22'
,
{
'andrew'
:
mark_safe
(
'a & b'
)})
self
.
assertEqual
(
output
,
'a & b'
)
@setup
({
'i18n23'
:
'{
%
load i18n
%
}{
%
trans "Page not found"|capfirst|slice:"6:"
%
}'
})
def
test_i18n23
(
self
):
"""Using filters with the {
%
trans
%
} tag (#5972)."""
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n23'
)
self
.
assertEqual
(
output
,
'nicht gefunden'
)
@setup
({
'i18n24'
:
'{
%
load i18n
%
}{
%
trans
\'
Page not found
\'
|upper
%
}'
})
def
test_i18n24
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n24'
)
self
.
assertEqual
(
output
,
'SEITE NICHT GEFUNDEN'
)
@setup
({
'i18n25'
:
'{
%
load i18n
%
}{
%
trans somevar|upper
%
}'
})
def
test_i18n25
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n25'
,
{
'somevar'
:
'Page not found'
})
self
.
assertEqual
(
output
,
'SEITE NICHT GEFUNDEN'
)
# trans tag with as var
@setup
({
'i18n35'
:
'{
%
load i18n
%
}{
%
trans "Page not found" as page_not_found
%
}{{ page_not_found }}'
})
def
test_i18n35
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n35'
)
self
.
assertEqual
(
output
,
'Seite nicht gefunden'
)
@setup
({
'i18n36'
:
'{
%
load i18n
%
}'
'{
%
trans "Page not found" noop as page_not_found
%
}{{ page_not_found }}'
})
def
test_i18n36
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n36'
)
self
.
assertEqual
(
output
,
'Page not found'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans
%
}A}'
})
def
test_syntax_error_no_arguments
(
self
):
msg
=
"'trans' takes at least one argument"
with
self
.
assertRaisesMessage
(
TemplateSyntaxError
,
msg
):
self
.
engine
.
render_to_string
(
'template'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans "Yes" badoption
%
}'
})
def
test_syntax_error_bad_option
(
self
):
msg
=
"Unknown argument for 'trans' tag: 'badoption'"
with
self
.
assertRaisesMessage
(
TemplateSyntaxError
,
msg
):
self
.
engine
.
render_to_string
(
'template'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans "Yes" as
%
}'
})
def
test_syntax_error_missing_assignment
(
self
):
msg
=
"No argument provided to the 'trans' tag for the as option."
with
self
.
assertRaisesMessage
(
TemplateSyntaxError
,
msg
):
self
.
engine
.
render_to_string
(
'template'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans "Yes" as var context
%
}'
})
def
test_syntax_error_missing_context
(
self
):
msg
=
"No argument provided to the 'trans' tag for the context option."
with
self
.
assertRaisesMessage
(
TemplateSyntaxError
,
msg
):
self
.
engine
.
render_to_string
(
'template'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans "Yes" context as var
%
}'
})
def
test_syntax_error_context_as
(
self
):
msg
=
"Invalid argument 'as' provided to the 'trans' tag for the context option"
with
self
.
assertRaisesMessage
(
TemplateSyntaxError
,
msg
):
self
.
engine
.
render_to_string
(
'template'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans "Yes" context noop
%
}'
})
def
test_syntax_error_context_noop
(
self
):
msg
=
"Invalid argument 'noop' provided to the 'trans' tag for the context option"
with
self
.
assertRaisesMessage
(
TemplateSyntaxError
,
msg
):
self
.
engine
.
render_to_string
(
'template'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans "Yes" noop noop
%
}'
})
def
test_syntax_error_duplicate_option
(
self
):
msg
=
"The 'noop' option was specified more than once."
with
self
.
assertRaisesMessage
(
TemplateSyntaxError
,
msg
):
self
.
engine
.
render_to_string
(
'template'
)
@setup
({
'template'
:
'{
%
load i18n
%
}{
%
trans "
%
s"
%
}'
})
def
test_trans_tag_using_a_string_that_looks_like_str_fmt
(
self
):
output
=
self
.
engine
.
render_to_string
(
'template'
)
self
.
assertEqual
(
output
,
'
%
s'
)
class
TranslationTransTagTests
(
SimpleTestCase
):
@override_settings
(
LOCALE_PATHS
=
extended_locale_paths
)
def
test_template_tags_pgettext
(
self
):
"""{
%
trans
%
} takes message contexts into account (#14806)."""
trans_real
.
_active
=
local
()
trans_real
.
_translations
=
{}
with
translation
.
override
(
'de'
):
# Nonexistent context...
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context "nonexistent"
%
}'
)
rendered
=
t
.
render
(
Context
())
self
.
assertEqual
(
rendered
,
'May'
)
# Existing context... using a literal
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context "month name"
%
}'
)
rendered
=
t
.
render
(
Context
())
self
.
assertEqual
(
rendered
,
'Mai'
)
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context "verb"
%
}'
)
rendered
=
t
.
render
(
Context
())
self
.
assertEqual
(
rendered
,
'Kann'
)
# Using a variable
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context message_context
%
}'
)
rendered
=
t
.
render
(
Context
({
'message_context'
:
'month name'
}))
self
.
assertEqual
(
rendered
,
'Mai'
)
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context message_context
%
}'
)
rendered
=
t
.
render
(
Context
({
'message_context'
:
'verb'
}))
self
.
assertEqual
(
rendered
,
'Kann'
)
# Using a filter
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context message_context|lower
%
}'
)
rendered
=
t
.
render
(
Context
({
'message_context'
:
'MONTH NAME'
}))
self
.
assertEqual
(
rendered
,
'Mai'
)
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context message_context|lower
%
}'
)
rendered
=
t
.
render
(
Context
({
'message_context'
:
'VERB'
}))
self
.
assertEqual
(
rendered
,
'Kann'
)
# Using 'as'
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" context "month name" as var
%
}Value: {{ var }}'
)
rendered
=
t
.
render
(
Context
())
self
.
assertEqual
(
rendered
,
'Value: Mai'
)
t
=
Template
(
'{
%
load i18n
%
}{
%
trans "May" as var context "verb"
%
}Value: {{ var }}'
)
rendered
=
t
.
render
(
Context
())
self
.
assertEqual
(
rendered
,
'Value: Kann'
)
class
MultipleLocaleActivationTransTagTests
(
MultipleLocaleActivationTestCase
):
def
test_single_locale_activation
(
self
):
"""
Simple baseline behavior with one locale for all the supported i18n
constructs.
"""
with
translation
.
override
(
'fr'
):
self
.
assertEqual
(
Template
(
"{
%
load i18n
%
}{
%
trans 'Yes'
%
}"
)
.
render
(
Context
({})),
'Oui'
)
def
test_multiple_locale_trans
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{
%
load i18n
%
}{
%
trans 'No'
%
}"
)
with
translation
.
override
(
self
.
_old_language
),
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
def
test_multiple_locale_deactivate_trans
(
self
):
with
translation
.
override
(
'de'
,
deactivate
=
True
):
t
=
Template
(
"{
%
load i18n
%
}{
%
trans 'No'
%
}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
def
test_multiple_locale_direct_switch_trans
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{
%
load i18n
%
}{
%
trans 'No'
%
}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
tests/template_tests/syntax_tests/i18n/test_underscore_syntax.py
0 → 100644
Dosyayı görüntüle @
97c1931c
from
__future__
import
unicode_literals
from
django.template
import
Context
,
Template
from
django.test
import
SimpleTestCase
from
django.utils
import
translation
from
...utils
import
setup
from
.base
import
MultipleLocaleActivationTestCase
class
MultipleLocaleActivationTests
(
MultipleLocaleActivationTestCase
):
def
test_single_locale_activation
(
self
):
"""
Simple baseline behavior with one locale for all the supported i18n
constructs.
"""
with
translation
.
override
(
'fr'
):
self
.
assertEqual
(
Template
(
"{{ _('Yes') }}"
)
.
render
(
Context
({})),
'Oui'
)
# Literal marked up with _() in a filter expression
def
test_multiple_locale_filter
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{
%
load i18n
%
}{{ 0|yesno:_('yes,no,maybe') }}"
)
with
translation
.
override
(
self
.
_old_language
),
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'nee'
)
def
test_multiple_locale_filter_deactivate
(
self
):
with
translation
.
override
(
'de'
,
deactivate
=
True
):
t
=
Template
(
"{
%
load i18n
%
}{{ 0|yesno:_('yes,no,maybe') }}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'nee'
)
def
test_multiple_locale_filter_direct_switch
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{
%
load i18n
%
}{{ 0|yesno:_('yes,no,maybe') }}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'nee'
)
# Literal marked up with _()
def
test_multiple_locale
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{{ _('No') }}"
)
with
translation
.
override
(
self
.
_old_language
),
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
def
test_multiple_locale_deactivate
(
self
):
with
translation
.
override
(
'de'
,
deactivate
=
True
):
t
=
Template
(
"{{ _('No') }}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
def
test_multiple_locale_direct_switch
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{{ _('No') }}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
# Literal marked up with _(), loading the i18n template tag library
def
test_multiple_locale_loadi18n
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{
%
load i18n
%
}{{ _('No') }}"
)
with
translation
.
override
(
self
.
_old_language
),
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
def
test_multiple_locale_loadi18n_deactivate
(
self
):
with
translation
.
override
(
'de'
,
deactivate
=
True
):
t
=
Template
(
"{
%
load i18n
%
}{{ _('No') }}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
def
test_multiple_locale_loadi18n_direct_switch
(
self
):
with
translation
.
override
(
'de'
):
t
=
Template
(
"{
%
load i18n
%
}{{ _('No') }}"
)
with
translation
.
override
(
'nl'
):
self
.
assertEqual
(
t
.
render
(
Context
({})),
'Nee'
)
class
I18nStringLiteralTests
(
SimpleTestCase
):
"""translation of constant strings"""
libraries
=
{
'i18n'
:
'django.templatetags.i18n'
}
@setup
({
'i18n13'
:
'{{ _("Password") }}'
})
def
test_i18n13
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n13'
)
self
.
assertEqual
(
output
,
'Passwort'
)
@setup
({
'i18n14'
:
'{
%
cycle "foo" _("Password") _(
\'
Password
\'
) as c
%
} {
%
cycle c
%
} {
%
cycle c
%
}'
})
def
test_i18n14
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n14'
)
self
.
assertEqual
(
output
,
'foo Passwort Passwort'
)
@setup
({
'i18n15'
:
'{{ absent|default:_("Password") }}'
})
def
test_i18n15
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n15'
,
{
'absent'
:
''
})
self
.
assertEqual
(
output
,
'Passwort'
)
@setup
({
'i18n16'
:
'{{ _("<") }}'
})
def
test_i18n16
(
self
):
with
translation
.
override
(
'de'
):
output
=
self
.
engine
.
render_to_string
(
'i18n16'
)
self
.
assertEqual
(
output
,
'<'
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment