summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-03-12 14:45:56 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-03-12 14:45:56 +0000
commitd1b889ec98f831b8a8143f9522da522c5ef0a3f6 (patch)
tree9ce284d4c699f1364797f70c3bb87b036c270861 /tests
parent1e1b57bfbe3a493d2179d499f00b0bbba49b8e2d (diff)
[1.1.X] Fixed #11891 -- Ensured that attributes of get_absolute_url are preserved through the metaclass. Thanks to nfg for the report and patch.
Backport of r12766 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12767 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/views/models.py1
-rw-r--r--tests/regressiontests/views/tests/defaults.py12
2 files changed, 11 insertions, 2 deletions
diff --git a/tests/regressiontests/views/models.py b/tests/regressiontests/views/models.py
index d96a13127e..54f5c1c1f0 100644
--- a/tests/regressiontests/views/models.py
+++ b/tests/regressiontests/views/models.py
@@ -39,6 +39,7 @@ class UrlArticle(BaseArticle):
def get_absolute_url(self):
return '/urlarticles/%s/' % self.slug
+ get_absolute_url.purge = True
class DateArticle(BaseArticle):
"""
diff --git a/tests/regressiontests/views/tests/defaults.py b/tests/regressiontests/views/tests/defaults.py
index 1d1b3c3501..0aefe481e8 100644
--- a/tests/regressiontests/views/tests/defaults.py
+++ b/tests/regressiontests/views/tests/defaults.py
@@ -4,7 +4,7 @@ from django.conf import settings
from django.test import TestCase
from django.contrib.contenttypes.models import ContentType
-from regressiontests.views.models import Author, Article
+from regressiontests.views.models import Author, Article, UrlArticle
class DefaultsTests(TestCase):
"""Test django views in django/views/defaults.py"""
@@ -15,7 +15,7 @@ class DefaultsTests(TestCase):
for obj in Author.objects.all():
short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, obj.pk)
response = self.client.get(short_url)
- self.assertRedirects(response, 'http://testserver%s' % obj.get_absolute_url(),
+ self.assertRedirects(response, 'http://testserver%s' % obj.get_absolute_url(),
status_code=302, target_status_code=404)
def test_shortcut_no_absolute_url(self):
@@ -59,3 +59,11 @@ class DefaultsTests(TestCase):
"The server_error view raises a 500 status"
response = self.client.get('/views/server_error/')
self.assertEquals(response.status_code, 500)
+
+ def test_get_absolute_url_attributes(self):
+ "A model can set attributes on the get_absolute_url method"
+ self.assertTrue(getattr(UrlArticle.get_absolute_url, 'purge', False),
+ 'The attributes of the original get_absolute_url must be added.')
+ article = UrlArticle.objects.get(pk=1)
+ self.assertTrue(getattr(article.get_absolute_url, 'purge', False),
+ 'The attributes of the original get_absolute_url must be added.')