test_forms.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django.test import TestCase
  2. from misago.core import forms
  3. class MockForm(forms.Form):
  4. stripme = forms.CharField(required=False)
  5. dontstripme = forms.CharField(required=False, strip=False)
  6. class MisagoFormsTests(TestCase):
  7. def test_stripme_input_is_autostripped(self):
  8. """Automatic strip worked on stripme input"""
  9. form = MockForm({'stripme': u' Ni! '})
  10. form.full_clean()
  11. self.assertEqual(form.cleaned_data['stripme'], 'Ni!')
  12. def test_dontstripme_input_is_ignored(self):
  13. """Automatic strip ignored dontstripme input"""
  14. form = MockForm({'dontstripme': u' Ni! '})
  15. form.full_clean()
  16. self.assertEqual(form.cleaned_data['dontstripme'], ' Ni! ')
  17. class YesNoForm(forms.Form):
  18. test_field = forms.YesNoSwitch(label='Hello!')
  19. class YesNoSwitchTests(TestCase):
  20. def test_valid_inputs(self):
  21. """YesNoSwitch returns valid values for valid input"""
  22. for true in ('1', 'True', 'true', 1, True):
  23. form = YesNoForm({'test_field': true})
  24. form.full_clean()
  25. self.assertEqual(form.cleaned_data['test_field'], 1)
  26. for false in ('0', 'False', 'false', 'egebege', False, 0):
  27. form = YesNoForm({'test_field': false})
  28. form.full_clean()
  29. self.assertEqual(form.cleaned_data['test_field'], 0)
  30. def test_dontstripme_input_is_ignored(self):
  31. """YesNoSwitch returns valid values for invalid input"""
  32. form = YesNoForm({'test_field': u'221'})
  33. form.full_clean()
  34. self.assertFalse(form.cleaned_data.get('test_field'))