diff --git a/tests/regressiontests/inline_formsets/tests.py b/tests/regressiontests/inline_formsets/tests.py index 24488661c7..73bbeebbf7 100644 --- a/tests/regressiontests/inline_formsets/tests.py +++ b/tests/regressiontests/inline_formsets/tests.py @@ -107,6 +107,13 @@ class DeletionTests(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): """ 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 to use for the inline formset, we should get an exception. """ - self.assertRaisesRegexp(Exception, + self.assertRaisesErrorWithMessage(Exception, " has more than 1 ForeignKey to ", 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 to the parent model, we should get an exception. """ - self.assertRaises(Exception, + self.assertRaisesErrorWithMessage(Exception, "fk_name 'school' is not a ForeignKey to ", 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 exception. """ - self.assertRaisesRegexp(Exception, + self.assertRaisesErrorWithMessage(Exception, " has no field named 'test'", inlineformset_factory, Parent, Child, fk_name='test' ) diff --git a/tests/regressiontests/m2m_regress/tests.py b/tests/regressiontests/m2m_regress/tests.py index 7bf2381a91..7e5e5c3270 100644 --- a/tests/regressiontests/m2m_regress/tests.py +++ b/tests/regressiontests/m2m_regress/tests.py @@ -6,6 +6,13 @@ from models import (SelfRefer, Tag, TagCollection, Entry, SelfReferChild, 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): # Multiple m2m references to model must be distinguished when # 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 # fields shouldn't appear in the list when an error is made. - self.assertRaisesRegexp(FieldError, - "Choices are: id, name, references, related, selfreferchild, selfreferchildsibling$", + self.assertRaisesErrorWithMessage(FieldError, + "Cannot resolve keyword 'porcupine' into field. Choices are: id, name, references, related, selfreferchild, selfreferchildsibling", lambda: SelfRefer.objects.filter(porcupine='fred') )