Loading tests/regressiontests/model_permalink/models.py +13 −0 Original line number Diff line number Diff line 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) Loading @@ -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]) tests/regressiontests/model_permalink/tests.py +9 −0 Original line number Diff line number Diff line Loading @@ -16,3 +16,12 @@ class PermalinkTests(TestCase): "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') Loading
tests/regressiontests/model_permalink/models.py +13 −0 Original line number Diff line number Diff line 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) Loading @@ -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])
tests/regressiontests/model_permalink/tests.py +9 −0 Original line number Diff line number Diff line Loading @@ -16,3 +16,12 @@ class PermalinkTests(TestCase): "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')