test_dateinput.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from datetime import date
  2. from django.forms import DateInput
  3. from django.test import override_settings
  4. from django.utils import translation
  5. from .base import WidgetTest
  6. class DateInputTest(WidgetTest):
  7. widget = DateInput()
  8. def test_render_none(self):
  9. self.check_html(self.widget, 'date', None, html='<input type="text" name="date">')
  10. def test_render_value(self):
  11. d = date(2007, 9, 17)
  12. self.assertEqual(str(d), '2007-09-17')
  13. self.check_html(self.widget, 'date', d, html='<input type="text" name="date" value="2007-09-17">')
  14. self.check_html(self.widget, 'date', date(2007, 9, 17), html=(
  15. '<input type="text" name="date" value="2007-09-17">'
  16. ))
  17. def test_string(self):
  18. """
  19. Should be able to initialize from a string value.
  20. """
  21. self.check_html(self.widget, 'date', '2007-09-17', html=(
  22. '<input type="text" name="date" value="2007-09-17">'
  23. ))
  24. def test_format(self):
  25. """
  26. Use 'format' to change the way a value is displayed.
  27. """
  28. d = date(2007, 9, 17)
  29. widget = DateInput(format='%d/%m/%Y', attrs={'type': 'date'})
  30. self.check_html(widget, 'date', d, html='<input type="date" name="date" value="17/09/2007">')
  31. @override_settings(USE_L10N=True)
  32. @translation.override('de-at')
  33. def test_l10n(self):
  34. self.check_html(
  35. self.widget, 'date', date(2007, 9, 17),
  36. html='<input type="text" name="date" value="17.09.2007">',
  37. )