diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2012-09-17 20:00:14 +0100 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2012-09-17 20:00:14 +0100 |
| commit | 9313dea7006ab77d54735fdd5825a812684e7144 (patch) | |
| tree | 3c4e67806b8805e41889d8f078d7c0cb2030a85d /tests/regressiontests/model_permalink | |
| parent | dbf8b93c527733fb5e3ea101a67bd94db745888e (diff) | |
| parent | d21f3d9b171a3cbff4c8ce7a9dbb8b8be3f21bac (diff) | |
Merge remote-tracking branch 'core/master' into schema-alteration
Conflicts:
django/db/backends/mysql/base.py
django/db/backends/postgresql_psycopg2/base.py
Diffstat (limited to 'tests/regressiontests/model_permalink')
| -rw-r--r-- | tests/regressiontests/model_permalink/models.py | 13 | ||||
| -rw-r--r-- | tests/regressiontests/model_permalink/tests.py | 9 |
2 files changed, 22 insertions, 0 deletions
diff --git a/tests/regressiontests/model_permalink/models.py b/tests/regressiontests/model_permalink/models.py index 4823fd46c7..dacf2a3fb3 100644 --- a/tests/regressiontests/model_permalink/models.py +++ b/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]) diff --git a/tests/regressiontests/model_permalink/tests.py b/tests/regressiontests/model_permalink/tests.py index 8286f6811a..049f338c2e 100644 --- a/tests/regressiontests/model_permalink/tests.py +++ b/tests/regressiontests/model_permalink/tests.py @@ -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') |
