summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/modeltests/str/models.py8
-rw-r--r--tests/modeltests/str/tests.py12
2 files changed, 19 insertions, 1 deletions
diff --git a/tests/modeltests/str/models.py b/tests/modeltests/str/models.py
index 488012e861..1c158ea008 100644
--- a/tests/modeltests/str/models.py
+++ b/tests/modeltests/str/models.py
@@ -28,6 +28,14 @@ class Article(models.Model):
return self.headline
@python_2_unicode_compatible
+class BrokenArticle(models.Model):
+ headline = models.CharField(max_length=100)
+ pub_date = models.DateTimeField()
+
+ def __unicode__(self): # instead of __str__
+ return self.headline
+
+@python_2_unicode_compatible
class InternationalArticle(models.Model):
headline = models.CharField(max_length=100)
pub_date = models.DateTimeField()
diff --git a/tests/modeltests/str/tests.py b/tests/modeltests/str/tests.py
index 2c11ac8c78..31869583aa 100644
--- a/tests/modeltests/str/tests.py
+++ b/tests/modeltests/str/tests.py
@@ -7,7 +7,7 @@ from django.test import TestCase
from django.utils import six
from django.utils.unittest import skipIf
-from .models import Article, InternationalArticle
+from .models import Article, BrokenArticle, InternationalArticle
class SimpleTests(TestCase):
@@ -21,6 +21,16 @@ class SimpleTests(TestCase):
self.assertEqual(str(a), str('Area man programs in Python'))
self.assertEqual(repr(a), str('<Article: Area man programs in Python>'))
+ @skipIf(six.PY3, "tests Model's default __str__ method under Python 2")
+ def test_broken(self):
+ # Regression test for #19362.
+ a = BrokenArticle.objects.create(
+ headline='Girl wins €12.500 in lottery',
+ pub_date=datetime.datetime(2005, 7, 28)
+ )
+ self.assertRaisesRegexp(RuntimeError, "Did you apply "
+ "@python_2_unicode_compatible without defining __str__\?", str, a)
+
def test_international(self):
a = InternationalArticle.objects.create(
headline='Girl wins €12.500 in lottery',