mirror of
https://github.com/django/django.git
synced 2024-12-24 01:55:49 +00:00
4c30fa905d
This is preparation for landing the template-based widget rendering patch and goes a long way to making these tests more useful for future development. The old doctest heritage is strong here.
64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
from datetime import datetime
|
|
|
|
from django.forms import DateTimeInput
|
|
from django.test import override_settings
|
|
from django.utils import translation
|
|
|
|
from .base import WidgetTest
|
|
|
|
|
|
class DateTimeInputTest(WidgetTest):
|
|
widget = DateTimeInput()
|
|
|
|
def test_render_none(self):
|
|
self.check_html(self.widget, 'date', None, '<input type="text" name="date" />')
|
|
|
|
def test_render_value(self):
|
|
"""
|
|
The microseconds are trimmed on display, by default.
|
|
"""
|
|
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
|
|
self.assertEqual(str(d), '2007-09-17 12:51:34.482548')
|
|
self.check_html(self.widget, 'date', d, html=(
|
|
'<input type="text" name="date" value="2007-09-17 12:51:34" />'
|
|
))
|
|
self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51, 34), html=(
|
|
'<input type="text" name="date" value="2007-09-17 12:51:34" />'
|
|
))
|
|
self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51), html=(
|
|
'<input type="text" name="date" value="2007-09-17 12:51:00" />'
|
|
))
|
|
|
|
def test_render_formatted(self):
|
|
"""
|
|
Use 'format' to change the way a value is displayed.
|
|
"""
|
|
widget = DateTimeInput(
|
|
format='%d/%m/%Y %H:%M', attrs={'type': 'datetime'},
|
|
)
|
|
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
|
|
self.check_html(widget, 'date', d, html='<input type="datetime" name="date" value="17/09/2007 12:51" />')
|
|
|
|
@override_settings(USE_L10N=True)
|
|
@translation.override('de-at')
|
|
def test_l10n(self):
|
|
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
|
|
self.check_html(self.widget, 'date', d, html=(
|
|
'<input type="text" name="date" value="17.09.2007 12:51:34" />'
|
|
))
|
|
|
|
@override_settings(USE_L10N=True)
|
|
@translation.override('de-at')
|
|
def test_locale_aware(self):
|
|
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
|
|
with self.settings(USE_L10N=False):
|
|
self.check_html(
|
|
self.widget, 'date', d,
|
|
html='<input type="text" name="date" value="2007-09-17 12:51:34" />',
|
|
)
|
|
with translation.override('es'):
|
|
self.check_html(
|
|
self.widget, 'date', d,
|
|
html='<input type="text" name="date" value="17/09/2007 12:51:34" />',
|
|
)
|