[1.2.X] Fixed a few other backporting-related bugs introduced in r14213.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14247 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jannis Leidel 2010-10-17 16:09:07 +00:00
parent 630b1fc09b
commit 55d8c47d29
2 changed files with 19 additions and 5 deletions

View File

@ -107,6 +107,13 @@ class DeletionTests(TestCase):
class InlineFormsetFactoryTest(TestCase): class InlineFormsetFactoryTest(TestCase):
def assertRaisesErrorWithMessage(self, error, message, callable, *args, **kwargs):
self.assertRaises(error, callable, *args, **kwargs)
try:
callable(*args, **kwargs)
except error, e:
self.assertEqual(message, str(e))
def test_inline_formset_factory(self): def test_inline_formset_factory(self):
""" """
These should both work without a problem. These should both work without a problem.
@ -119,7 +126,7 @@ class InlineFormsetFactoryTest(TestCase):
Child has two ForeignKeys to Parent, so if we don't specify which one Child has two ForeignKeys to Parent, so if we don't specify which one
to use for the inline formset, we should get an exception. to use for the inline formset, we should get an exception.
""" """
self.assertRaisesRegexp(Exception, self.assertRaisesErrorWithMessage(Exception,
"<class 'regressiontests.inline_formsets.models.Child'> has more than 1 ForeignKey to <class 'regressiontests.inline_formsets.models.Parent'>", "<class 'regressiontests.inline_formsets.models.Child'> has more than 1 ForeignKey to <class 'regressiontests.inline_formsets.models.Parent'>",
inlineformset_factory, Parent, Child inlineformset_factory, Parent, Child
) )
@ -129,7 +136,7 @@ class InlineFormsetFactoryTest(TestCase):
If we specify fk_name, but it isn't a ForeignKey from the child model If we specify fk_name, but it isn't a ForeignKey from the child model
to the parent model, we should get an exception. to the parent model, we should get an exception.
""" """
self.assertRaises(Exception, self.assertRaisesErrorWithMessage(Exception,
"fk_name 'school' is not a ForeignKey to <class 'regressiontests.inline_formsets.models.Parent'>", "fk_name 'school' is not a ForeignKey to <class 'regressiontests.inline_formsets.models.Parent'>",
inlineformset_factory, Parent, Child, fk_name='school' inlineformset_factory, Parent, Child, fk_name='school'
) )
@ -139,7 +146,7 @@ class InlineFormsetFactoryTest(TestCase):
If the field specified in fk_name is not a ForeignKey, we should get an If the field specified in fk_name is not a ForeignKey, we should get an
exception. exception.
""" """
self.assertRaisesRegexp(Exception, self.assertRaisesErrorWithMessage(Exception,
"<class 'regressiontests.inline_formsets.models.Child'> has no field named 'test'", "<class 'regressiontests.inline_formsets.models.Child'> has no field named 'test'",
inlineformset_factory, Parent, Child, fk_name='test' inlineformset_factory, Parent, Child, fk_name='test'
) )

View File

@ -6,6 +6,13 @@ from models import (SelfRefer, Tag, TagCollection, Entry, SelfReferChild,
class M2MRegressionTests(TestCase): class M2MRegressionTests(TestCase):
def assertRaisesErrorWithMessage(self, error, message, callable, *args, **kwargs):
self.assertRaises(error, callable, *args, **kwargs)
try:
callable(*args, **kwargs)
except error, e:
self.assertEqual(message, str(e))
def test_multiple_m2m(self): def test_multiple_m2m(self):
# Multiple m2m references to model must be distinguished when # Multiple m2m references to model must be distinguished when
# accessing the relations through an instance attribute. # accessing the relations through an instance attribute.
@ -33,8 +40,8 @@ class M2MRegressionTests(TestCase):
# The secret internal related names for self-referential many-to-many # The secret internal related names for self-referential many-to-many
# fields shouldn't appear in the list when an error is made. # fields shouldn't appear in the list when an error is made.
self.assertRaisesRegexp(FieldError, self.assertRaisesErrorWithMessage(FieldError,
"Choices are: id, name, references, related, selfreferchild, selfreferchildsibling$", "Cannot resolve keyword 'porcupine' into field. Choices are: id, name, references, related, selfreferchild, selfreferchildsibling",
lambda: SelfRefer.objects.filter(porcupine='fred') lambda: SelfRefer.objects.filter(porcupine='fred')
) )