Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #360 from calebsmith/add-permalink-wraps-test

Ticket #12836 - Added a test to assure permalink wraps method attributes
  • Loading branch information...
commit a630d08483267fbeb461f2fb06313d0e17ef6d44 2 parents f399a80 + 210fd7c
@apollo13 apollo13 authored
View
13 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)
@@ -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])
View
9 tests/regressiontests/model_permalink/tests.py
@@ -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.
Something went wrong with that request. Please try again.