Просмотр исходного кода

Fixed and doc-tested misago forms module. #232

Rafał Pitoń 11 лет назад
Родитель
Сommit
78c5961a4f
2 измененных файлов с 27 добавлено и 5 удалено
  1. 5 5
      misago/core/forms.py
  2. 22 0
      misago/core/tests/test_forms.py

+ 5 - 5
misago/core/forms.py

@@ -3,13 +3,13 @@ from floppyforms import Form as BaseForm, ModelForm as BaseModelForm
 
 
 
 
 class AutoStripInputMixin(object):
 class AutoStripInputMixin(object):
-    dont_strip = None
+    autostrip_exclude = None
 
 
     def full_clean(self):
     def full_clean(self):
         self.data = self.data.copy()
         self.data = self.data.copy()
         for name, field in self.fields.iteritems():
         for name, field in self.fields.iteritems():
-            if (field.__class__ == forms.CharField and
-                    not name in self.dont_strip):
+            if (field.__class__ == CharField and
+                    not name in self.autostrip_exclude):
                 try:
                 try:
                     self.data[name] = self.data[name].strip()
                     self.data[name] = self.data[name].strip()
                 except KeyError:
                 except KeyError:
@@ -17,9 +17,9 @@ class AutoStripInputMixin(object):
         return super(AutoStripInputMixin, self).full_clean()
         return super(AutoStripInputMixin, self).full_clean()
 
 
 
 
-class Form(AutoStripInputMixin, forms.BaseForm):
+class Form(AutoStripInputMixin, BaseForm):
     pass
     pass
 
 
 
 
-class ModelForm(AutoStripInputMixin, forms.BaseModelForm):
+class ModelForm(AutoStripInputMixin, BaseModelForm):
     pass
     pass

+ 22 - 0
misago/core/tests/test_forms.py

@@ -0,0 +1,22 @@
+from django.test import TestCase
+from misago.core import forms
+
+
+class MockForm(forms.Form):
+    stripme = forms.CharField(required=False)
+    autostrip_exclude = ['dontstripme']
+    dontstripme = forms.CharField(required=False)
+
+
+class MisagoFormsTests(TestCase):
+    def test_stripme_input_is_autostripped(self):
+        """Automatic strip worked on stripme input"""
+        form = MockForm({'stripme': u' Ni! '})
+        form.full_clean()
+        self.assertEqual(form.cleaned_data['stripme'], 'Ni!')
+
+    def test_dontstripme_input_is_ignored(self):
+        """Automatic strip ignored dontstripme input"""
+        form = MockForm({'dontstripme': u' Ni! '})
+        form.full_clean()
+        self.assertEqual(form.cleaned_data['dontstripme'], ' Ni! ')