diff options
| author | Joseph Kocherhans <joseph@jkocherhans.com> | 2010-02-23 20:02:18 +0000 |
|---|---|---|
| committer | Joseph Kocherhans <joseph@jkocherhans.com> | 2010-02-23 20:02:18 +0000 |
| commit | 6ba5fb37287ab88e2039d754e89788bb864ee123 (patch) | |
| tree | 019813f61882990c86c82473fe654b1b1593cb93 /tests/regressiontests/model_forms_regress/tests.py | |
| parent | c05de31d75970e3d5ea9ecec37e332a0f01c0fbb (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.py | 34 |
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()) + |
