Skip to content

Commit

Permalink
- fixed problem with a wrong assertion
Browse files Browse the repository at this point in the history
  • Loading branch information
kunitoki committed Jan 30, 2015
1 parent 9fc9f4b commit 9219b73
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 9 deletions.
4 changes: 2 additions & 2 deletions CHANGELOG.rst
Expand Up @@ -4,10 +4,10 @@ Changelog
Only important changes are mentioned below.


v0.2 (unreleased)
v0.2 (2015-01-30)
-----------------

* ...
* Fixed problem with assertion on django.forms.ModelForm


v0.1 (2015-01-21)
Expand Down
3 changes: 1 addition & 2 deletions formaldehyde/fieldsets.py
@@ -1,5 +1,4 @@
from __future__ import unicode_literals
import itertools
from django import forms
from django.utils import six

Expand Down Expand Up @@ -86,7 +85,7 @@ def next(self):
#==============================================================================
class FieldsetFormMixin(object):
def fieldsets(self):
assert(isinstance(self, forms.Form))
assert(isinstance(self, forms.BaseForm))

meta = getattr(self, 'MetaForm', None)
if not meta or not meta.fieldsets:
Expand Down
3 changes: 2 additions & 1 deletion formaldehyde/readonly.py
Expand Up @@ -9,6 +9,7 @@ class ReadonlyFormMixin(object):
"""

def set_readonly(self, is_readonly=True):
assert(isinstance(self, forms.Form))
assert(isinstance(self, forms.BaseForm))

for field in self.fields:
self.fields[field].is_readonly = is_readonly
36 changes: 33 additions & 3 deletions formaldehyde/tests/test.py
Expand Up @@ -56,6 +56,13 @@ class TestFieldsetFormRaises(FieldsetFormMixin):
class TestReadonlyForm(ReadonlyFormMixin, forms.Form):
first_name = forms.CharField(label='First name', max_length=100)

class TestReadonlyModelForm(ReadonlyFormMixin, forms.ModelForm):
first_name = forms.CharField(label='First name', max_length=100)

class Meta:
model = ContentType
fields = "__all__"

class TestWhitespaceForm(StripWhitespaceFormMixin, forms.Form):
first_name = forms.CharField(label='First name', max_length=100)
last_name = forms.CharField(label='Last name', max_length=100)
Expand All @@ -64,6 +71,18 @@ def full_clean(self):
self.strip_whitespace_from_data()
super(TestWhitespaceForm, self).full_clean()

class TestWhitespaceModelForm(StripWhitespaceFormMixin, forms.ModelForm):
first_name = forms.CharField(label='First name', max_length=100)
last_name = forms.CharField(label='Last name', max_length=100)

class Meta:
model = ContentType
fields = "__all__"

def full_clean(self):
self.strip_whitespace_from_data()
super(TestWhitespaceForm, self).full_clean()


#==============================================================================
class FormalehydeTestCase(TestCase):
Expand Down Expand Up @@ -114,24 +133,35 @@ def test_fieldset_model_form(self):
def test_raises_form(self):
form = TestFieldsetFormRaises()
fieldsets = form.fieldsets()

with self.assertRaises(AssertionError):
six.next(fieldsets)

def test_readonly_form(self):
form = TestReadonlyForm()

form.set_readonly(True)
self.assertTrue(form.fields['first_name'].is_readonly)
form.set_readonly(False)
self.assertFalse(form.fields['first_name'].is_readonly)

def test_readonly_model_form(self):
form = TestReadonlyModelForm()
form.set_readonly(True)
self.assertTrue(form.fields['first_name'].is_readonly)
form.set_readonly(False)
self.assertFalse(form.fields['first_name'].is_readonly)

def test_whitespace_form(self):
form = TestWhitespaceForm(data={'first_name': ' John ', 'last_name': ' '})
self.assertFalse(form.is_valid())

form = TestWhitespaceForm(data={'first_name': ' Foo ', 'last_name': ' Bar ack'})
self.assertTrue(form.is_valid())
self.assertEqual(form.cleaned_data['first_name'], 'Foo')
self.assertEqual(form.cleaned_data['last_name'], 'Bar ack')

def test_whitespace_model_form(self):
form = TestWhitespaceModelForm(data={'first_name': ' John ', 'last_name': ' '})
self.assertFalse(form.is_valid())
form = TestWhitespaceModelForm(data={'first_name': ' Foo ', 'last_name': ' Bar ack'})
self.assertTrue(form.is_valid())
self.assertEqual(form.cleaned_data['first_name'], 'Foo')
self.assertEqual(form.cleaned_data['last_name'], 'Bar ack')
2 changes: 1 addition & 1 deletion formaldehyde/whitespace.py
Expand Up @@ -10,7 +10,7 @@ class StripWhitespaceFormMixin(object):
"""

def strip_whitespace_from_data(self):
assert(isinstance(self, forms.Form))
assert(isinstance(self, forms.BaseForm))

if hasattr(self, 'data') and self.data:
data = self.data.copy()
Expand Down

0 comments on commit 9219b73

Please sign in to comment.