Skip to content

Commit

Permalink
refs django#12836 - Added a test to assure permalink wraps method att…
Browse files Browse the repository at this point in the history
…ributes
  • Loading branch information
Caleb Smith committed Sep 8, 2012
1 parent 617d077 commit 210fd7c
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
13 changes: 13 additions & 0 deletions tests/regressiontests/model_permalink/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
from django.db import models


def set_attr(name, value):
def wrapper(function):
setattr(function, name, value)
return function
return wrapper


class Guitarist(models.Model):
name = models.CharField(max_length=50)
slug = models.CharField(max_length=50)
Expand All @@ -9,3 +16,9 @@ class Guitarist(models.Model):
def url(self):
"Returns the URL for this guitarist."
return ('guitarist_detail', [self.slug])

@models.permalink
@set_attr('attribute', 'value')
def url_with_attribute(self):
"Returns the URL for this guitarist and holds an attribute"
return ('guitarist_detail', [self.slug])
9 changes: 9 additions & 0 deletions tests/regressiontests/model_permalink/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,12 @@ def test_wrapped_docstring(self):
"Methods using the @permalink decorator retain their docstring."
g = Guitarist(name='Adrien Moignard', slug='adrienmoignard')
self.assertEqual(g.url.__doc__, "Returns the URL for this guitarist.")

def test_wrapped_attribute(self):
"""
Methods using the @permalink decorator can have attached attributes
from other decorators
"""
g = Guitarist(name='Adrien Moignard', slug='adrienmoignard')
self.assertTrue(hasattr(g.url_with_attribute, 'attribute'))
self.assertEqual(g.url_with_attribute.attribute, 'value')

0 comments on commit 210fd7c

Please sign in to comment.