from django.forms import NullBooleanSelect
from django.utils import translation
from .base import WidgetTest
class NullBooleanSelectTest(WidgetTest):
widget = NullBooleanSelect()
def test_render_true(self):
self.check_html(
self.widget,
"is_cool",
True,
html=(
""""""
),
)
def test_render_false(self):
self.check_html(
self.widget,
"is_cool",
False,
html=(
""""""
),
)
def test_render_none(self):
self.check_html(
self.widget,
"is_cool",
None,
html=(
""""""
),
)
def test_render_value_unknown(self):
self.check_html(
self.widget,
"is_cool",
"unknown",
html=(
""""""
),
)
def test_render_value_true(self):
self.check_html(
self.widget,
"is_cool",
"true",
html=(
""""""
),
)
def test_render_value_false(self):
self.check_html(
self.widget,
"is_cool",
"false",
html=(
""""""
),
)
def test_render_value_1(self):
self.check_html(
self.widget,
"is_cool",
"1",
html=(
""""""
),
)
def test_render_value_2(self):
self.check_html(
self.widget,
"is_cool",
"2",
html=(
""""""
),
)
def test_render_value_3(self):
self.check_html(
self.widget,
"is_cool",
"3",
html=(
""""""
),
)
def test_l10n(self):
"""
The NullBooleanSelect widget's options are lazily localized (#17190).
"""
widget = NullBooleanSelect()
with translation.override("de-at"):
self.check_html(
widget,
"id_bool",
True,
html=(
"""
"""
),
)