test_splithiddendatetimewidget.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from datetime import datetime
  2. from django.forms import SplitHiddenDateTimeWidget
  3. from django.utils import translation
  4. from .base import WidgetTest
  5. class SplitHiddenDateTimeWidgetTest(WidgetTest):
  6. widget = SplitHiddenDateTimeWidget()
  7. def test_render_empty(self):
  8. self.check_html(self.widget, 'date', '', html=(
  9. '<input type="hidden" name="date_0"><input type="hidden" name="date_1">'
  10. ))
  11. def test_render_value(self):
  12. d = datetime(2007, 9, 17, 12, 51, 34, 482548)
  13. self.check_html(self.widget, 'date', d, html=(
  14. '<input type="hidden" name="date_0" value="2007-09-17">'
  15. '<input type="hidden" name="date_1" value="12:51:34">'
  16. ))
  17. self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51, 34), html=(
  18. '<input type="hidden" name="date_0" value="2007-09-17">'
  19. '<input type="hidden" name="date_1" value="12:51:34">'
  20. ))
  21. self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51), html=(
  22. '<input type="hidden" name="date_0" value="2007-09-17">'
  23. '<input type="hidden" name="date_1" value="12:51:00">'
  24. ))
  25. @translation.override('de-at')
  26. def test_l10n(self):
  27. d = datetime(2007, 9, 17, 12, 51)
  28. self.check_html(self.widget, 'date', d, html=(
  29. """
  30. <input type="hidden" name="date_0" value="17.09.2007">
  31. <input type="hidden" name="date_1" value="12:51:00">
  32. """
  33. ))
  34. def test_constructor_different_attrs(self):
  35. html = (
  36. '<input type="hidden" class="foo" value="2006-01-10" name="date_0">'
  37. '<input type="hidden" class="bar" value="07:30:00" name="date_1">'
  38. )
  39. widget = SplitHiddenDateTimeWidget(date_attrs={'class': 'foo'}, time_attrs={'class': 'bar'})
  40. self.check_html(widget, 'date', datetime(2006, 1, 10, 7, 30), html=html)
  41. widget = SplitHiddenDateTimeWidget(date_attrs={'class': 'foo'}, attrs={'class': 'bar'})
  42. self.check_html(widget, 'date', datetime(2006, 1, 10, 7, 30), html=html)
  43. widget = SplitHiddenDateTimeWidget(time_attrs={'class': 'bar'}, attrs={'class': 'foo'})
  44. self.check_html(widget, 'date', datetime(2006, 1, 10, 7, 30), html=html)