Author: Honza_Kral
Date: 2010-10-12 23:36:51 -0500 (Tue, 12 Oct 2010)
New Revision: 14198

Modified:
   django/trunk/tests/regressiontests/model_forms_regress/models.py
   django/trunk/tests/regressiontests/model_forms_regress/tests.py
Log:
Fixed #12304 -- regression tests to make sure the validation messages for 
unique violations are sane, Thanks ramiro!

Modified: django/trunk/tests/regressiontests/model_forms_regress/models.py
===================================================================
--- django/trunk/tests/regressiontests/model_forms_regress/models.py    
2010-10-13 04:16:31 UTC (rev 14197)
+++ django/trunk/tests/regressiontests/model_forms_regress/models.py    
2010-10-13 04:36:51 UTC (rev 14198)
@@ -60,3 +60,12 @@
 
 class Document(models.Model):
     myfile = models.FileField(upload_to='unused', blank=True)
+
+class Edition(models.Model):
+    author = models.ForeignKey(Person)
+    publication = models.ForeignKey(Publication)
+    edition = models.IntegerField()
+    isbn = models.CharField(max_length=13, unique=True)
+
+    class Meta:
+        unique_together = (('author', 'publication'), ('publication', 
'edition'),)

Modified: django/trunk/tests/regressiontests/model_forms_regress/tests.py
===================================================================
--- django/trunk/tests/regressiontests/model_forms_regress/tests.py     
2010-10-13 04:16:31 UTC (rev 14197)
+++ django/trunk/tests/regressiontests/model_forms_regress/tests.py     
2010-10-13 04:36:51 UTC (rev 14198)
@@ -8,7 +8,7 @@
 from django.core.files.uploadedfile import SimpleUploadedFile
 
 from models import Person, RealPerson, Triple, FilePathModel, Article, \
-    Publication, CustomFF, Author, Author1, Homepage, Document
+    Publication, CustomFF, Author, Author1, Homepage, Document, Edition
 
 
 class ModelMultipleChoiceFieldTests(TestCase):
@@ -389,3 +389,31 @@
         rendered = unicode(form)
         self.assert_('something.txt' in rendered)
         self.assert_('myfile-clear' in rendered)
+
+class EditionForm(forms.ModelForm):
+    author = forms.ModelChoiceField(queryset=Person.objects.all())
+    publication = forms.ModelChoiceField(queryset=Publication.objects.all())
+    edition = forms.IntegerField()
+    isbn = forms.CharField(max_length=13)
+
+    class Meta:
+        model = Edition
+
+class UniqueErrorsTests(TestCase):
+    def setUp(self):
+        self.author1 = Person.objects.create(name=u'Author #1')
+        self.author2 = Person.objects.create(name=u'Author #2')
+        self.pub1 = Publication.objects.create(title='Pub #1', 
date_published=date(2000, 10, 31))
+        self.pub2 = Publication.objects.create(title='Pub #2', 
date_published=date(2004, 1, 5))
+        form = EditionForm(data={'author': self.author1.pk, 'publication': 
self.pub1.pk, 'edition': 1, 'isbn': '9783161484100'})
+        form.save()
+
+    def test_unique_error_message(self):
+        form = EditionForm(data={'author': self.author1.pk, 'publication': 
self.pub2.pk, 'edition': 1, 'isbn': '9783161484100'})
+        self.assertEquals(form.errors, {'isbn': [u'Edition with this Isbn 
already exists.']})
+
+    def test_unique_together_error_message(self):
+        form = EditionForm(data={'author': self.author1.pk, 'publication': 
self.pub1.pk, 'edition': 2, 'isbn': '9783161489999'})
+        self.assertEquals(form.errors, {'__all__': [u'Edition with this Author 
and Publication already exists.']})
+        form = EditionForm(data={'author': self.author2.pk, 'publication': 
self.pub1.pk, 'edition': 1, 'isbn': '9783161487777'})
+        self.assertEquals(form.errors, {'__all__': [u'Edition with this 
Publication and Edition already exists.']})

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to