Skip to content

Commit

Permalink
Merge pull request #360 from calebsmith/add-permalink-wraps-test
Browse files Browse the repository at this point in the history
Ticket #12836 - Added a test to assure permalink wraps method attributes
  • Loading branch information
apollo13 committed Sep 16, 2012
2 parents f399a80 + 210fd7c commit a630d08
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
@@ -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
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 a630d08

Please sign in to comment.