summaryrefslogtreecommitdiff
path: root/tests/regressiontests/model_forms_regress/tests.py
diff options
context:
space:
mode:
authorJoseph Kocherhans <joseph@jkocherhans.com>2010-02-23 20:02:18 +0000
committerJoseph Kocherhans <joseph@jkocherhans.com>2010-02-23 20:02:18 +0000
commit6ba5fb37287ab88e2039d754e89788bb864ee123 (patch)
tree019813f61882990c86c82473fe654b1b1593cb93 /tests/regressiontests/model_forms_regress/tests.py
parentc05de31d75970e3d5ea9ecec37e332a0f01c0fbb (diff)
Fixed #12420. Now that OneToOneField allows assignment of None, stop guarding against it in ModelForms. Thanks, andrewsk.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12545 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/model_forms_regress/tests.py')
-rw-r--r--tests/regressiontests/model_forms_regress/tests.py34
1 files changed, 33 insertions, 1 deletions
diff --git a/tests/regressiontests/model_forms_regress/tests.py b/tests/regressiontests/model_forms_regress/tests.py
index c923a12e15..d03e61d4fa 100644
--- a/tests/regressiontests/model_forms_regress/tests.py
+++ b/tests/regressiontests/model_forms_regress/tests.py
@@ -6,7 +6,7 @@ from django.forms.models import modelform_factory
from django.conf import settings
from django.test import TestCase
-from models import Person, RealPerson, Triple, FilePathModel, Article, Publication, CustomFF
+from models import Person, RealPerson, Triple, FilePathModel, Article, Publication, CustomFF, Author, Author1
class ModelMultipleChoiceFieldTests(TestCase):
@@ -152,3 +152,35 @@ class ModelClassTests(TestCase):
class NoModelModelForm(forms.ModelForm):
pass
self.assertRaises(ValueError, NoModelModelForm)
+
+class OneToOneFieldTests(TestCase):
+ def test_assignment_of_none(self):
+ class AuthorForm(forms.ModelForm):
+ class Meta:
+ model = Author
+ fields = ['publication', 'full_name']
+
+ publication = Publication.objects.create(title="Pravda",
+ date_published=date(1991, 8, 22))
+ author = Author.objects.create(publication=publication, full_name='John Doe')
+ form = AuthorForm({'publication':u'', 'full_name':'John Doe'}, instance=author)
+ self.assert_(form.is_valid())
+ self.assertEqual(form.cleaned_data['publication'], None)
+ author = form.save()
+ # author object returned from form still retains original publication object
+ # that's why we need to retreive it from database again
+ new_author = Author.objects.get(pk=author.pk)
+ self.assertEqual(new_author.publication, None)
+
+ def test_assignment_of_none_null_false(self):
+ class AuthorForm(forms.ModelForm):
+ class Meta:
+ model = Author1
+ fields = ['publication', 'full_name']
+
+ publication = Publication.objects.create(title="Pravda",
+ date_published=date(1991, 8, 22))
+ author = Author1.objects.create(publication=publication, full_name='John Doe')
+ form = AuthorForm({'publication':u'', 'full_name':'John Doe'}, instance=author)
+ self.assert_(not form.is_valid())
+